彩神排列三_神彩排列三官方

造成MySQL全表扫描的原因

时间:2019-12-23 09:55:56 出处:彩神排列三_神彩排列三官方

文章链接为:https://blog.csdn.net/u0124001054/article/details/400361447

可能是连续数据,不都可以改为select account where id between 1 and 3;当数据较少时也不都可以参考union用法;

可能:select account from member where id in (select accountid from department where id = 3 ),不都可以改为select account from member where id exsits (select accountid from department where id = 3)

not in 不都可以对应 not exists;

5.使用not in时

如select account where id not in (1,2,3)

6.使用!=或<>时

建议使用 <,<=,=,>,>=,between等;

7.对字段有操作时也会引起权标索引

如select account where salary * 0.8 = 4000 可能 select account where sustring(nickname,1,3) = ‘zhangxiaolong’;

8.使用count(*)时

如select count(*) from member;

建议使用select count(1) from member;

9.使用参数做为查询条件时

如select account from member where nickname = @name

可能SQL语录在编译执行时并不选用参数,这将无法通过索引进行数据查询,什么都尽量处理; 刘加东@酷听说

建议使用select account from member where nickname like ‘XXX%’,可能须要要用到做查询,须要评估对当前表全表扫描造成的后果; 刘加东@酷听说

建议在设计字段时尽量将字段的默认值设为0,改为select account where nickname = 0;

此文转自Zebul博

当不规范的写法造成全表扫描时,会造成CPU和内存的额外消耗,甚至会导致 分析服务器崩溃。在团队合作协议中难免会遇到许多初学者,除了安排合理的任务外,资深的工程师也要做好Code Review。不想当亲戚亲戚亲戚朋友有海量数据时,不规范的语录会带来很严重的后果,一定要慎重、慎重。

全表扫描是数据库搜寻表的每根小记录的过程,直到所有符合给定条件的记录返回为止。通常在数据库中,对无索引的表进行查询一般称为全表扫描;然而有不想亲戚亲戚亲戚朋友即便上加了索引,但当亲戚亲戚亲戚朋友的SQL语录写的不合理的不想也会造成全表扫描。

以下是经常会造成全表扫描的SQL语录及应对土办法:

建议使用union all,改为 select account from member where id = 1 union all select account from member where id = 2;

热门

热门标签