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