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

猜你喜欢

转载自www.cnblogs.com/yangj-Blog/p/13196009.html