mysql优化
一、数据库优化是一个综合的工作,主要有以下5中方式:
1.合理的表结构(符合三大范式)
2.建立适当的索引(常用的有普通索引,主键索引,唯一索引,全文索引)
3.分表(水平,垂直分割)
4.读写分离(写包括:update,delete,insert)
5.存储过程(模块化编程能提高速度)
6.修改mysql配置(最大并发数,缓存 mysql.init)
7.服务器硬件升级
8.定时的清除不需要的数据,碎片整理
二、下面根据上面提供的方向,逐一讲解
1.合理的表结构
满足三大范式,某些情况下,可以反第三大范式,适当冗余数据
2.sql语句的优化
如何定位慢查询 SHOW GLOBAL STATUS LIKE 'slow_queries'
show VARIABLES like 'long_query_time'; //显示当前慢查询的时间
set long_query_time=1//设置当前慢查询的时间
3.索引
3.1 查看 索引的方法
3.1.1 desc 表名; show indexes from 表名; show keys from 表名
3.2 什么时候创建索引
反复出现在where字句中;唯一性不太差;更改频率不大;
复合索引只有当where条件中出现复合索引左边的字段时候,才有效。
or条件中只有两边都有索引才有效。
4.水平分表:根据业务需求,找到水平分割的标准
垂直分割:保小不保大。比如把描述 desc字段查看的次数不多,但是价格查询的比较多,可以把desc单独拎出来放在一张新表中。
5.my.ini的配置
port,max_connections,缓存。
6.合理的硬件资源和操作系统
7.读写分离