MYSQL使用索引的方法
来源:互联网 发布:js 定义对象属性 编辑:程序博客网 时间:2024/06/03 22:03
如何建立索引
· 索引通常被用于提高WHERE条件的数据行匹配或者执行联结操作时匹配其它表的数据行的搜索速度。所以我们选择索引的列也通常选择出现在WHERE子句、join子句、ORDER BY或GROUP BY子句中的列。
· 选择索引时,需要考虑数据列的基数。所谓基数,是指数据列所包含的不同的数据的个数。如果基数相对于数据表行数较高的话,索引的效果比较好。换句话说,就是指数据列的不同的值越多,索引效果越好。如果一个数据列只包含:0或者1两个值的话,索引的用处就不大。如果值出现的几率几乎相等,那么无论搜索哪个值都可能得到一半的数据行。在这些情况下,最好根本不要使用索引。
· 索引值较短的值,所选择的数据类型也尽可能的要小一些。譬如:如果TEXT能满足需求的话,我们就不需要用MEDIUTEXT。
· 如果建立联合索引的话,譬如对:t1,t2,t3建立联合索引的话,同时也是对t1和t1,t2建立了索引。但是如果单独指定t2、t3、t1t3、t2t3的值的话,都会用不到索引。
sql语句中如何避免没有使用索引的情况
首先先了解一下mysql优化器的工作原理:MySQL查询优化器最主要的目标是尽可能地使用索引,并且使用最严格的索引来消除尽可能多的数据行。所以当我们提交查询语句时,如果优化器排除不符合条件的数据的速度越快,那么查询的结果也会越快。
·尽量比较数据类型相同的数据列。例如,INT与BIGINT是不同的。CHAR(10)被认为是CHAR(10)或VARCHAR(10),但是与CHAR(12)或VARCHAR(12)不同。
·尽量不要在where子句中对索引列使用表达式或者函数。如果你在索引列使用函数调用或者更复杂的算术表达式,MySQL就不会使用索引,因为它必须计算出每个数据行的表达式值。
· 在使用LIKE时,尽量不要在开头使用通配符。
· 不要使用类型转换。如果某个索引列是int型,而在查询时,赋值为字符型,将使用不了索引。
·在SELECT语句中可以使用STRAIGHT_JOIN关键字来重载优化器的选择。
阅读全文
0 0
- MYSQL使用索引的方法
- MYSQL使用索引的方法
- MYSQL使用索引的方法
- MYSQL使用索引的方法
- mysql 索引使用的三种方法
- mysql索引的使用及优化方法
- mysql索引的使用及优化方法
- MYSQL索引的使用
- MySQL索引的使用
- mysql 索引的使用
- MySQL索引的使用
- Mysql索引的使用
- MySQL索引的使用
- MySQL索引的使用
- MySQL索引的使用
- mysql索引的使用
- MySQL索引的使用
- MySQL索引的使用
- python 模块与包
- 图像处理之计算二值连通区域的质心
- angularjs UI select 多选后页面闪动的解决方案
- linux用户组
- hjr-JAVA工作日记(四):Spring-boot和MQ-ActiveMQ +JMS
- MYSQL使用索引的方法
- 微信小程序开发 | 官方问答精选
- 只是简单做一个开始
- 混淆代码总结
- html5图库拍照分离及语音录制播放调研
- 防火墙的学习2-双向NAT
- bbwt
- java语言的特点
- c语言中 32位系统和64位系统的区别