mysql数据库的调优大概可以分为四大块
0 架构调优
---根据业务 读写分库分表
---主从 读写分离
1 配置的调优
---开启缓存查询 设置缓存大小
---最大连接数设置
---数据库引擎配置 myisam(读操作,查询快) Innodb(写操作,主库,支持事务,安全) 引擎配置
---日志配置
2 表结构的调优
----建立合适的索引(主键索引,唯一索引,普通索引,全文索引 myisam中用来检索文本)EXPLAIN SELECT命令那里往往可以获得一些帮助知道哪些需要建立索引(优点:查询快 缺点:占空间,更新sql慢)
---尽量每个表都加上ID列,除关联表
---分表,垂直分割,列太长,分割为固定长度的表 和 不固定长度的表 固定长度查询更快,前提是被分库后的另一些表不会被经常join到。否则效率更低。
3 sql的调优
---避免全模糊查询%like%,会使索引失效。
---避免sql中直接使用sql函数,sql函数会使缓存查询失效,用变量代替之。
---大批量的操作使用limit分批进行更高效(避免锁全表),对于明知取出数据只要1条的查询加上limit 1 更高效。
---is not null <> !=,均会使索引失效。
---对于一些固定取值的列,尽量使用enum代替varchar,更高效。
---避免无意义的全表扫描 count(*)