码迷,mamicode.com
首页 > 其他好文 > 详细

mysqk优化概述

时间:2017-03-13 11:19:51      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:顺序   bsp   执行   内存池   高效   mysq   查询   sans   var   

 

一般有以下重要的几点

1.数据库设计

一般需要满足三范式

 合适的存储引擎

优化数据字段类型

 

2.sql语句优化

定位执行效率较低的sql语句(重点是select)             

Show variables like long_query_time;
set long_query_time=2     修改为2秒

 

 

通过explain分析

explain select *from emp where ename = 张三;

 

 

确定问题并采取优化措施

建立索引

1.频繁作为查询条件的字段应该创建索引 (唯一性太差和更新频繁的不适合)

2.不会出现在where子句中的字段不该创建索引

可能会用到索引

1.多列索引, 只要查询条件用到了最左边的列, 索引一般会被使用

2.对于like查询, ‘%aaa‘不会使用索引,   ‘aaa%‘会使用索引

不会使用到索引

1.条件中有or, 即使有条件带索引也不会使用

2.多列索引, 如果不使用第一部分, 则都不会使用

3.like查询以 %开头

4.字符串不加引号

5.如果mysql估计全表扫描比使用索引快, 则不会用.

 

分表技术

当一张表越来越大, 即使添加索引还慢的话, 可以考虑分表技术

水平切分, 将记录散列到不同的表中, 每次从分表中查询, 提高效率

垂直切分, 将表中大字段单独拆分到另外一张表, 形成一对一的关系

 

 

3.数据库参数配置

innodb_additional_mem_pool_size  内存池 大小, 默认为8M,数据库中的表数量越多,参数值应该越大,如果 InnoDB 用完了内存池中的内存,就会从操作系统中分配内存,同时在 error log 中打入报警信息

innodb-buffer-pool-size  缓冲池大小

对于myisam, 需要调整 keu_buffer_size

 

4.硬件资源和操作系统恰当

 

这四个顺序也表现了对性能影响的大小

mysqk优化概述

标签:顺序   bsp   执行   内存池   高效   mysq   查询   sans   var   

原文地址:http://www.cnblogs.com/tanxing/p/6541539.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!