码迷,mamicode.com
首页 > 数据库 > 详细

Mysql优化-和分析查询explain

时间:2020-06-26 20:31:51      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:csdn   垂直   username   run   拆分   arc   www   use   class   

SQL变慢的原因

技术图片

 

 

优化

 最简单的优化就是建立索引

https://www.runoob.com/mysql/mysql-index.html

建表时添加索引

建表同时建立单索引

CREATE TABLE t_user1(id INT ,
userName VARCHAR(20),
PASSWORD VARCHAR(20),
INDEX (userName) #关键字INDEX
);

建表同时建立唯一索引(可以是单或多)

CREATE TABLE t_user2(id INT ,
userName VARCHAR(20),
PASSWORD VARCHAR(20),
UNIQUE INDEX index_userName(userName) #关键字UNIQUE和INDEX
);

建表同时建立联合索引

CREATE TABLE t_user3(id INT ,
userName VARCHAR(20),
PASSWORD VARCHAR(20),
INDEX index_userName_password(userName,PASSWORD)
);

给已存在表添加索引

    • 单列索引
      CREATE INDEX index_userName ON t_user(userName);
    • 唯一索引
      CREATE UNIQUE INDEX index_userName ON t_user(userName);
    • 联合索引
      CREATE INDEX index_userName_password ON t_user(userName,PASSWORD);

 

对MySQL语句性能优化的16条经验

① 为查询缓存优化查询
② EXPLAIN 我们的SELECT查询(可以查看执行的行数)
③ 当只要一行数据时使用LIMIT 1
④ 为搜索字段建立索引
⑤ 在Join表的时候使用相当类型的列,并将其索引
⑥ 千万不要 ORDER BY RAND  ()
⑦ 避免SELECT *
⑧ 永远为每张表设置一个ID
⑨ 可以使用ENUM 而不要VARCHAR
⑩ 尽可能的使用NOT NULL
? 固定长度的表会更快
? 垂直分割
? 拆分打的DELETE或INSERT语句
? 越小的列会越快
? 选择正确的存储引擎
? 小心 "永久链接"
https://blog.csdn.net/u013087513/article/details/77899412

分析查询explain

https://www.cnblogs.com/xuanzhi201111/p/4175635.html

https://www.cnblogs.com/xuanzhi201111/p/4175635.html

 

类型如下

4技术图片

 

1 explain 之id

技术图片

 

 2 explain 之select_type

见下:https://www.jianshu.com/p/ea3fc71fdc45

 

Mysql优化-和分析查询explain

标签:csdn   垂直   username   run   拆分   arc   www   use   class   

原文地址:https://www.cnblogs.com/yangj-Blog/p/13196009.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!