-
myisam索引与数据存储
-
innodb索引与数据存储
-
索引的类型
-
innodb回表问题
-
hash索引
-
全文搜索引擎
myisam索引与数据存储
myisam文件有
.frm 记录表和字段的结构 .MYD 存储数据 .MYI 存储索引
innodb存储的数据和索引其实没有分开 .idb .idbdata
普通索引和主键索引会指向数据在磁盘存储的位置。
innodb索引与数据存储
innodb的普通索引找到主键字段值,主键索引就找到实际数据在瓷盘中的位置。
凡是innodb中定义的所有索引默认就是与主键作为联合索引
idx_gender(gender) => idx_gender(gender,id)
在innodb中通过索引来实现行锁,如果不加索引转换为表锁。
索引的类型
索弓|类型:
主键索引:就是我们主键
唯-索引:一个唯一字段建立的索引 效率比较高 ,通过根据唯一的字段而建立索引-般是单索引
单索引:单个字段的索引根据与一个字段而创建的索引
普通索引就是:非主键字段的索引
联合索引:多个字段联合建立的索引
全文索引:针对于中文进行分词的搜索
覆盖索引:是所有查询sq|中追求的索引效率的完美使用,就是直接可以根据索引而获取数据,不需要再去磁盘中读取数据
innodb回表问题
mysq|对于索弓|检索的数据的占比与性能对比;非using index, 最高30%以内。可以使用,超过百分之30不建议使用,会产生回表问题。
回表:主要是普通索引问题,存储引擎是innodb,sq|查询的时候使用到普通索引,获取数据只要不存在与索弓|中的情况就会出
现回表问题
回表:就是根据普通索引查询到主键,又去主键索引去磁盘中检索数据
hash索引
mysq|会根据我们的字段会进行hashi计
算-生成一个字符串:磁盘数据地址
hash索引 无序,离散;特点效率高=>存在的问题是不能进行范围查询
创建的联合hash索引=>必须要两个字段都要有