1.1、存储引擎
InnoDB支持事务、行级锁,现已作为默认存储引擎。
ChangeBuffering缓冲池,可减少维护辅助索引所需的磁盘I/O
MyISAM不支持事务、表级锁
1.2、MySQL的内存分配
在为MySQL分配足够的内存之前,请考虑不同领域对MySQL的内存需求。要考虑的关键领域是:并发连接——对于大量并发连接,排序和临时表将需要大量内存。在撰写本文时,对于处理3000+并发连接的数据库,16GB到32GB的RAM是足够的。
内存碎片可以消耗大约10%或更多的内存。像innodb_buffer_pool_size、key_buffer_size、query_cache_size等缓存和缓冲区要消耗大约80%的已分配内存。
1.3、索引机制(Index)
本质:索引是数据结构
MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址。需要回表查询完整数据
InnoDB的数据文件本身就是索引文件,叶节点包含了完整的数据记录,所以InnoDB要求表必须有主键,如果不设置会自动生成一个隐式主键,这种索引就是聚集索引。查询时如果命中不需要回表,直接返回。
覆盖索引
覆盖索引遵循靠左原则,查询时如果需要返回的字段全部包含在索引中,则不需要回表。
索引合并(index merge)5.1开始引入
1个where条件里包含有2个以上的索引查询,对同一个表可以使用多个索引分别进行条件扫描。
index merge 算法根据合并算法的不同分成了三种:intersect(AND运算), union(OR运算), sort_union(多个条件扫描进行OR运算,但是不符合 index union merge算法的)
前缀索引
当需要创建索引的字段比较长时,这个索引将会很占内存,而且会很慢,这时就会用到前缀索引。
前缀索引从左侧截取固定长度字符串作为索引,重复度越低效果会越好。
唯一索引、普通索引
1.4、常用中间件
360 Atlas、DDRS
本文地址:https://www.stayed.cn/item/244
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我