索引优化策略
来源:互联网 发布:数控平面钻的编程 编辑:程序博客网 时间:2024/06/10 23:59
1:索引类型
1.1B-tree索引
注:名叫btree索引,大的方面看,都用的平衡树,但具体的实现上,个引擎稍有不同,比如,严格的说,NDB引擎,使用的是T-tree索引
myisam mnodb中默认使用B-tree索引;但抽象一下 b_tree系统,可理解为为‘排好序的快速查找结构’
1.2hash索引
在memory(内存)表里,默认是hash索引,hash的理论查询时间复杂度为1(1)
疑问:jiran hash的查找如此高效,为什么不都用hash索引?
答:
1:hsah函数计算后的机构是随机的,如果是在磁盘上放置的数据,比如主键为Id为例
,那么随着id的增长,id对应的行,在磁盘上随机放置。
2:无法对范围查询进行优化
3:无法利用前缀索引,比如 在tree中,field列的值‘helloworld’,并添加索引
,查询 xx=helloworld自然可以利用索引,xx-hello,也可以利用索引
(左前缀索引),因为hash(‘helloword’)和hash(‘hello’),两张关系仍未随机
4:排序呢也无法优化
5:必须换行,也就是说,通过索引拿到数据位置,必须到表中取数据
2:btree索引的常见误区
2.1 在where 条件常用的列上都添加索引
例:where cat_id=3 and price>100;//查询第三个栏目,100元以上的商品
误:cat_id和price上都加上索引错:只能用上cat_id或price索引,因为是独立的索引,同事只能用上一个
2.2 复合索引遵循最佳左前缀原则
最左前缀:顾名思义,就是最左优先,例如中我们创建了lname_fname_age多列索引,相当于创建了(lname)单列索引,(lname,fname)组合索引以及(lname,fname,age)组合索引。参考:http://www.cnblogs.com/jamesbd/p/4333901.html
阅读全文
0 0
- 查询优化策略---索引
- Mysql-索引优化策略
- mysql索引优化策略
- 索引优化策略
- 索引优化策略
- 索引优化策略
- mysql优化 索引优化策略
- 索引使用策略及优化
- InnoDB调优-索引优化策略
- 索引优化策略(1)
- B-Tree索引及索引优化策略
- mysql 优化(2)索引优化策略
- Oracle Index 索引介绍 及 优化策略
- 使用SQL Server DMVs优化索引策略
- mysql索引使用策略和优化
- Schema的优化和索引 - 高性能的索引策略
- 数据库索引跟B+Tree的关系,索引优化策略
- Schema的优化和索引 - 高性能的索引策略 - 索引和锁
- 伸展树—系列题目
- Problem 1106 Sum of Factorials
- 4.10easyui
- POJ2524 并查集
- 【java】-- 运算符
- 索引优化策略
- Java 异常处理的误区和经验总结
- 多磁盘多系统安装记录-以fedora25server/centos7为例
- 关于javascript起始标签和结束标签
- perror函数的作用
- 音视频数据处理(-3) 自行生成bmp图像以及bmp图像解析
- 扩展欧几里得
- 应用机器学习(七):随机森林
- POJ1061 数论gcd