加入收藏 | 设为首页 | 会员中心 | 我要投稿 网站开发网_马鞍山站长网 (https://www.0555zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

8种你可能正在写错的SQL用法

发布时间:2019-07-22 20:50:20 所属栏目:站长百科 来源:佚名
导读:副标题#e# 1、LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方。比如对于下面简单的语句,一般 DBA 想到的办法是在 type, name, create_time 字段上加组合索引。这样条件排序都能有效的利用到索引,性能迅速提升。 SELECT* FROMope

MySQL 对待 EXISTS 子句时,仍然采用嵌套子查询的执行方式。如下面的 SQL 语句:

  1. SELECT *  
  2. FROM   my_neighbor n   
  3.        LEFT JOIN my_neighbor_apply sra   
  4.               ON n.id = sra.neighbor_id   
  5.                  AND sra.user_id = 'xxx'   
  6. WHERE  n.topic_status < 4   
  7.        AND EXISTS(SELECT 1   
  8.                   FROM   message_info m   
  9.                   WHERE  n.id = m.neighbor_id   
  10.                          AND m.inuser = 'xxx')   
  11.        AND n.topic_type <> 5  

执行计划为:

  1. +----+--------------------+-------+------+-----+------------------------------------------+---------+-------+---------+ -----+  
  2. | id | select_type        | table | type | possible_keys     | key   | key_len | ref   | rows    | Extra   |  
  3. +----+--------------------+-------+------+ -----+------------------------------------------+---------+-------+---------+ -----+  
  4. |  1 | PRIMARY            | n     | ALL  |  | NULL     | NULL    | NULL  | 1086041 | Using where                   |  
  5. |  1 | PRIMARY            | sra   | ref  |  | idx_user_id | 123     | const |       1 | Using where          |  
  6. |  2 | DEPENDENT SUBQUERY | m     | ref  |  | idx_message_info   | 122     | const |       1 | Using index condition; Using where |  
  7. +----+--------------------+-------+------+ -----+------------------------------------------+---------+-------+---------+ -----+ 

(编辑:网站开发网_马鞍山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!