Mysql中常见的8种SQL差错用途
前言
MySQL在2016年依然维持强劲的数据库流行度增长趋势。越来越多的客户将本人的利用创立在MySQL数据库之上,甚至是从Oracle迁移到MySQL上来。但也存在局部客户在运用MySQL数据库的历程中碰到一些比方相应工夫慢,CPU打满等状况。
阿里云RDS专家办事团队帮忙云上客户解决过许多危急题目。现将《ApsaraDB专家诊断汇报》中涌现的局部常见SQL题目总结如下,供大家参照 。
1、LIMIT 语句
分页查询是最常用的场景之一,但也平常也是最容易出题目的地方。
比方关于下面简略的语句,个别 DBA 想到的方法是在 type, name, create_time 字段上加组合索引。这样前提排序都能有效的应用到索引,机能快速提拔。
SELECT * FROM operation WHERE type = 'SQLStats' AND name = 'SlowLog' ORDER BY create_time LIMIT 1000, 10;
好吧,可能90%以上的 DBA 解决该题目就到此为止。
但当 LIMIT 子句酿成 “LIMIT 1000000,10” 时,程序员依然会埋怨:我只取10笔记录为何还是慢?
要晓得数据库也并不晓得第1000000笔记录从什么地方开端,即便有索引也需要从头盘算一次。涌现这种机能题目,多数情景下是程序员偷懒了。在前端数据阅读翻页,或者大数据分批导出等场景下,是可以将上一页的最大值当做参数作为查询前提的。SQL 从新设计如下:
SELECT * FROM operation WHERE type = 'SQLStats' AND name = 'SlowLog' AND create_time > '2017-03-16 14:00:00' ORDER BY create_time limit 10;
2、隐式转换
SQL语句中查询变量和字段定义类型不匹配是另一个常见的差错。比方下面的语句:
相理解更多相干题目请拜访百分百源码网:mysql视频教程
以上就是Mysql中常见的8种SQL差错用途的细致内容,更多请关注 百分百源码网 其它相干文章!