MyISAM,Memory,InnoDB-程序员宅基地

技术标签: memory  myisam  mysql  innodb  

MyISAM:

表锁:表级锁。注意不要让它成为瓶颈

不支持自动数据恢复:服务器崩溃或停电后,就应该在使用之前检查和执行可能的修复。

不支持事务:实际上,MyISAM甚至不保证单个命令会完成。如果在多行UPDATE的中途有错误发生,一些行会被更新,而另外一些则不会。

只有索引被缓存在内存中:MyISAM中缓存了MYSQL进程内部的索引,并保存在键缓冲区。操作系统缓存了表的数据,因此在MYSQL5.0中须进行昂贵的系统调用来取得它。

紧密存储:行被紧紧地保存在一起,这样磁盘上的数据就能行到小的磁盘占用和快速的全表扫描。


Memory

表锁:和MyISAM一样,但Memory表上的查询都较快,所以通常不是问题。

不支持动态行:动态行即可变长度行,因此它们根本不支持BLOG和TEXT字段,即使varchar(5000)也会变成char(5000).这样如果大多数值较小,则是巨大的内存浪费。

哈希索引是默认索引类型

没有索引统计

重启后丢失数据:Memory表不会把任何数据持久到磁盘,因此当服务器重启后即使表的定义还在,数据也会丢失。


InnoDB:

事务性:InnoDB支持事务和四种事务隔离级别

外键:在Mysql5.0中,InnoDB是唯一支持外键的存储引擎。另外的存储引擎在CREATE TABLE命令中可以接受外键,但却不会强制执行。一些第三方引擎,比哪SolidDB,也在存储引擎层次支持它。

行级锁:锁设定于行一级,不会向上传递并且也不会阻塞选择----标准选择根本不会设定任何锁,它有很好的并发特性

多版本:InnoDB使用多版本并发控制,这样在默认情况下可能选择读取陈旧的数据。事实上,它的MVCC架构增添了很多复杂的和意料之外的行为。如果使用InnoDB,就应该仔细阅读InnoDB手册。

按主键聚集:所有的InnoDB表都是按主键聚集的。可以在架构设计中运用这一点

所有索引包含主键列:索引按照主键引用行,因此如果不把主键维持得很短,索引就增长得很大。

优化的缓存:InnoDB把数据和内存缓存在缓冲区池里。它也会自动构建哈希索引以加快行读取。

未压缩的索引:索引没有使用前缀压缩,因此可能会比MyISAM表的索引大很多。

数据装载缓慢:在MyISAM5.0中,InnoDB不会特别优化数据加载。它一次构建一行的索引,而不是按照排序进行构建。这会导致数据加载缓慢。

阻塞AUTO_INCREMENT:在Mysql5.1之前的版本中,InnoDB使用了表级锁来产生每个新的AUTO_INCREMENT值。

没有缓存的COUNT(*)值:和MyISAM表或Memory表不同,InnoDB表不会把表的行数保存在表中,这意味着没有WHERE子句的COUNT(*)查询不会被优化掉,并且需要全表或索引扫描。


 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/home198979/article/details/84285544

智能推荐

初始Linux的基本操作_桌面操作系统,手机操作系统,服务器操作系统,嵌入式操作系统-程序员宅基地

文章浏览阅读652次。Linux的相关概念和理解Linux的基本指令ls,cd,pwd, touch, mkdir, whoami, tree, adduser, userdel实现_桌面操作系统,手机操作系统,服务器操作系统,嵌入式操作系统

centos8使用命令修改主机名_centos8stream 关于的名称-程序员宅基地

文章浏览阅读1.1k次。hostnamectl set-hostname layuiFilehostname #查看主机名然后先跳到普通用户再exit退到root看其生效或reboot重启生效_centos8stream 关于的名称

安卓高手之路之图形系统(6)requestLayout的流程_kotlin requestlayout-程序员宅基地

文章浏览阅读1.1w次。当一个View调用requestLayout的时候,会给当前的View设置一个FORCE_LAYOUT标记。由此向ViewParent请求布局。这样从这个View开始向上一直requestLayout。最终到达ViewRootImpl。ViewParent 就是当前的传输链。【参见职责链设计模式】 第一步。ViewRootImpl发现请求了布局。那么就会调用measure方_kotlin requestlayout

python opencv 灰度图转换和resize函数的使用_python cv2 resize(img1, ())-程序员宅基地

文章浏览阅读1.7k次。import cv2import numpy as npimg1 = cv2.imread('left.png',1)img1 = cv2.resize(img1, (797,1212))dst1 = cv2.cvtColor(img1,cv2.COLOR_BGR2GRAY)cv2.imwrite('l.png',dst1)img1 = cv2.imread('left.png',1..._python cv2 resize(img1, ())

Socket基础六:基于数据报套接字的网络程序(udp丢包测试)_数据报套接字 丢包测试-程序员宅基地

文章浏览阅读656次。Socket基础五:基于数据报套接字的网络程序(udp丢包测试)作者:刘磊 2020.4.27   参考书目:《Windows网络编程》刘琰等著一、功能函数1、int udp_server_fun_packetloss(SOCKET s){ int iResult = 0; int count = 0; struct sockaddr_in cliaddr; int addrlen = sizeof(sockaddr_in); char recvline[MAXLINE]; do_数据报套接字 丢包测试

国内elasticsearch和kibana镜像、ik分词器_ik分词器国内镜像-程序员宅基地

文章浏览阅读1.6k次。发现华为云有一个好用的国内镜像kibana各个版本下载地址:https://mirrors.huaweicloud.com/elasticsearch/kibana各个版本下载地址:https://mirrors.huaweicloud.com/kibana/ik分词器各个版本下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases亲测下载速度非常快..._ik分词器国内镜像

随便推点

Coursera—Andrew Ng机器学习—课程笔记 Lecture 5 Octave Tutorial-程序员宅基地

文章浏览阅读575次。定义函数 squareThisNumber(x),内容如下:

超级应用 - 免费应用内测托管平台|APP应用分发平台|iOS应用分发|Android应用分发|免费应用内测托管平台 源码下载_awjd1.tv-程序员宅基地

文章浏览阅读4k次。网站标题:超级应用 - 免费应用内测托管平台|APP应用分发平台|iOS应用分发|Android应用分发|免费应用内测托管平台源码下载网站关键词:超级应用(www.awwjd.com) 为您提供测试测试应用、应用托管、分发测试、兼容测试等,为客户提供APP托管和免费的下载分发渠道!源码下载网站描述:超级应用,分发平台,内测平台,内测分发,app分发,ios企业签名,ios分发平台,ios免签封装,苹果企业签名,苹果超级签名,免签封装,应用打包,苹果App下载,安卓应用,苹果应用,扫码下载,UDID,iO_awjd1.tv

阿里数据库内核月报:2017年05月-程序员宅基地

文章浏览阅读45次。# 01MySQL·引擎特性·InnoDBBufferPool# 02AliSQL·特性介绍·动态加字段# 03PgSQL·特性分析·数据库崩溃恢复(上)# 04MySQL·答疑解惑·MySQL的那些网络超时错误# 05HybridDB·最佳实践·HybridDB数据合并的方法与原理...

FPGA时序约束、时序分析(一)-程序员宅基地

文章浏览阅读163次。很多人询问关于约束、时序分析的问题,比如:如何设置setup,hold时间?如何使用全局时钟和第二全局时钟(长线资源)?如何进行分组约束?如何约束某部分组合逻辑?如何通过约束保证异步时钟域之间的数据交换可靠?如何使用I/O逻辑单元内部的寄存器资源?如何进行物理区域约束,完成物理综合和物理实现?为了解决大家的疑难,我们将逐一讨论这些问题。(注:以下主要设计时序约束)A 时序约束的概念和基本策略..._如何约束fpga寄存器到pad的延时

2024年软件测试工具总结 —— 性能测试工具_magicotp,软件测试基础入门_web页面性能测试工具-程序员宅基地

文章浏览阅读512次,点赞19次,收藏12次。WebLOAD是一款针对Web应用程序的企业级负载和性能测试工具,提供性能、完整性和可伸缩性测试等功能,能够同时模拟数千个用户,因此您可以测试重流量负载,并报告应用程序中的弱点、约束和性能瓶颈。它是一个以开发人员为中心(当然,测试人员亦可以使用,因为真的很方便),免费和开源的负载测试工具,旨在使性能测试具有生产力和令人愉悦的体验,可最大程度地减少系统资源的消耗。在线性能监控是指借助监控工具,监控系统性能的实际数据,因为是真实数据,比研发环境中通过工具产生负载得到的测试结果更客观,更有分析价值。_web页面性能测试工具

Java进制转换, 数据类型, 运算符_java 32进制递增-程序员宅基地

文章浏览阅读511次。 1:进制转换转换规则:先把数据的每一位上的系数乘以对应基数的次幂(低位从零开始),然后相加即可十进制到其他进制规则:除基取余,直到商为0,最后将余数反转十进制到二进制: 除2取余,直到商为0,最后将余数反转 例: 十进制13对应的二进制数据是1101 二进制到十进制的技巧(8421码)十进制到八进制: 除8取余,直到商为0,最后将余数反转 例: ..._java 32进制递增