MySQL優化
一、表設計優化
1、簡單既優
數組和字符要給范圍,不易過長過大
時間盡量使用時間戳格式,占用的存儲空間比較少
字段和表注釋必不可少
2、索引設置
常用查詢字段要添加索引
如果能使用聯合索引代替的盡量使用聯合索引代替
3、合適的表引擎
myisam更適合讀寫較快的地方
innodb更適合處理事務和更新刪除
二、查詢優化
1、范查詢最好禁止
查詢字段要具體,盡量避免使用*
2、盡可能使用索引
根據不同索引,查詢時最好使用索引
3、exists和in使用特點
如果查詢的兩個表大小相當,那么用in和exists效率差別不大
如果兩個表中一個較小,一個較大,則子查詢表大的用exists,子查詢表小的用in
三、數據量過高優化
1、分區分表,mysql5.5之后分區逐漸代替了分表
2、主從設置,可以一主多從和多主多從
四、sql分析
1、explain 后面跟sql語句
主要的字段 type,rows,keys ;
type指定了該sql使用那種類型的查詢
keys知道了該sql使用了那些索引
rows知道了查詢結果需要遍歷多少行才可以得到結果
五、常見mysql配置
錯誤日志
log-error= dir
慢查詢
slow_query_log = 1 #開啟
slow_query_log_file = /data/log/mysql/slow_query.log #日志
long_query_time = 0.5 #設置慢查詢界限,單位秒
binlog
binlog_format = mixed #設置日志格式
log-bin = /data/mysql/logs/mysql-bin.log #設置binlog日志存儲地址
expire_logs_days = 7 #設置失效時間
max_binlog_size = 100m #設置日志文件大小
binlog_cache_size = 4m #設置binlog緩存大小
max_binlog_cache_size = 512m #最大緩存大小
浙公網安備 33010602011771號