mysql如何避免全屏扫描?


当前第2页 返回上一页

7.避免在索引列上使用计算,也就是说,应尽量避免在 where 子句中对字段进行表达式操作和函数操作,这将导致引擎放弃使用索引而进行全表扫描。

如:select id from t where num/2=100应改为:select id from t where num=100*2

8.很多时候用 exists 代替 in 是一个好的选择:exists用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值true或false。

select num from a where num in(select num from b)

用下面的语句替换:select num from a where exists (select 1 from b where num=a.num)

9.任何地方都不要使用 select from t ,用具体的字段列表代替“”,不要返回用不到的任何字段。

10.用>=替代>

高效: SELECT * FROM EMP WHERE DEPTNO >=4

低效: SELECT * FROM EMP WHERE DEPTNO >3

两者的区别在于, 前者DBMS将直接跳到第一个DEPT等于4的记录,而后者将首先定位到DEPTNO=3的记录并且向前扫描到第一个DEPT大于3的记录。

11.用Where子句替换having子句

推荐教程:mysql视频教程

以上就是mysql如何避免全屏扫描?的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

mysql怎么导入txt文件?

一文读懂mysql中的索引

mysql不支持innodb的解决方法

mysql如何删除一列

mysql视图有空间吗?

如何备份mysql

计算机二级mysql数据库考什么?

mysql中如何加密存储

详解mysql 数据库范式

mysql索引更新要多久

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...