索引是在存储引擎中实现的,也就是说不同的存储引擎,会使用不同的索引
MyISAM 和 InnoDB 存储引擎:只⽀支持B+ TREE 索引, 也就是说默认使用 BTREE,不能够更换
MEMORY/HEAP...聚簇索引
在使用InnoDB存储引擎的时候, 主键索引 B+树叶子节点会存储数据行记录,简单来说数据和索引在一起存储 , 这就是聚簇索引
非聚簇索引
在使用MyISAM存储引擎的时候, B+树叶子节点只会存储数据行的指针...需要查询二次
如果使用MyISAM存储引擎 , 会首先根据索引查询到数据行指针, 再根据指针获取数据
如果是InnoDB存储引擎 , 会根据索引查找指定数据关联的主键 ID , 再根据主键 ID 去主键索引中查找数据...区分度不高的字段
16. mysql 的性能优化
从设计方面 选择合适的存储引擎 , 合适的字段类型 , 遵循范式(反范式设计)
存储引擎 :
不需要事务, 不需要外键读写较多的的使用...Mysql 锁和分库分表
MYSQL 锁按照锁的粒度分,分为以下三类:
全局锁:锁定数据库中的所有表。