Mysql优化-和分析查询explain

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

 

posted @ 2020-06-26 18:59  To_Yang  阅读(151)  评论(0编辑  收藏  举报