时间:2024-02-09 10:40作者:下载吧人气:18
索引:特殊的数据结构,存储表的数据的一小部分以实现快速查询
优点:
1、大大减少了服务器需要扫描的数据量
2、索引可以帮助服务器避免排序或使用临时表
3、索引可以将随机io转换为顺序io
索引评估:三星(非常好)
一星:索引如果能将相关的记录放置到一起
二星:索引中数据的存储顺序与查找标准中顺序一致
三星:如果索引中包含查询中所需要的全部数据:(覆盖索引)
DBA书:关系型数据库索引设计与优化
索引类别:
顺序索引
散列索引:将索引映射至散列桶上,映射是通过散列函数进行的
评估索引的标准:
访问类型:做等值比较用散列索引,用范围比较时用顺序索引
访问时间:
插入时长:
删除时长:
空间开销:
顺序索引:
聚集索引:如果某记录文件中的记录顺序是按照对应的搜索码指定的顺序排序,聚集索引页成为主索引
非聚集索引:搜索码中的指定的次序与记录文件中的记录次序不一致
有聚集索引的数据文件,也叫做索引顺序文件
根据索引中是否为每个记录相应的创建索引项,可分为稠密索引和稀疏索引
多级索引:(但对频繁修改的数据,性能很差)
辅助索引必须是稠密索引
B+树索引:顺序索引
Balance Tree:平衡树索引
顺序索引的特性:
全值匹配:Name='user12'
匹配最左前缀:Name LIKE 'User1%',无效:Name LIKE '%User1%'
匹配列前缀:Name LIKE 'User1%',无效:Name LIKE '%User1%'
匹配范围值
精确匹配某一列并范围匹配另外一列:
只访问索引的查询
散列索引:
散列函数:
分布随机
分布均匀
适用场景:
精确匹配:=,IN(),<=>
Mysql:全文索引,fulltext
sphinx,lucene
空间索引:必须使用空间索引函数获取相应的查询结果
主键、唯一键
Mysql:创建索引
create index index_name on table (col1,…)
alter table add index
alter table drop index
drop index index_name from table
show indexes from table
网友评论