前言
有多少小伙伴被 SQL语法坑过?集合8种最坑 SQL 语法,看你踩过几个坑?具体看正文:
正文
sql语句的执行顺序:
- FROM
- <left_table>
-
- ON
- <join_condition>
-
- <join_type>
- JOIN
- <right_table>
-
- WHERE
- <where_condition>
-
- GROUP BY
- <group_by_list>
-
- HAVING
- <having_condition>
-
- SELECT
-
- DISTINCT
- <select_list>
-
- ORDER BY
- <order_by_condition>
-
- LIMIT
- <limit_number>
-
分页查询是最常用的场景之一,但也通常也是最容易出问题的地方。比如对于下面简单的语句,一般 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条记录为什么还是慢?
要知道数