Mysql 性能优化
2014-07-06 00:54
176 查看
1.optimize table
2.analyze table
3.尽量将列声明为NOT NULL
4.Mysql只用前缀索引,避免在已有索引前缀上再建立索引,如index(a,b)上不要再建立index(a)
5.索引装入Key Cache
Load index into cache table1;
6.干预索引使用,提高性能:
A.提供给Mysql参考,推荐Mysql使用某个索引
select * from t_user use index(index_city)where name like 'a%' and city like 'b%';
B.强制Mysql使用某索引
select * from t_user force index(index_city)where name like 'a%' and city like 'b%';
C.让mysql 忽略使用某索引
select * from t_user ignore index(index_city)where name like 'a%' and city like 'b%';
7.使用临时表提高查询性能
select SQL_BUFFER_RESULT * from t_user;//将大结果集放到临时表中,以释放表级锁
select SQL_BIG_RESULT city,count(*) from t_user group by city;//用于分组和DISTINCT关键字,通知mysql在有必要时将结果集放入临时表,甚至在临时表内排序
8.straight_join强制表连接顺序
select a.age,b.score from a straight_join b where...;//强制a连接b
9.查询缓存提高性能
select SQL_CACHE * from t_user;
select SQL_NO_CACHE * from t_user;//不会缓存查询结果,不会到缓冲区查找,会直接执行它。
10.调整执行的优先级
select high_priority * from t_user;//优先执行
INSERT DELAYED INTO,是客户端提交数据给MySQL,MySQL返回OK状态给客户端。而这是并不是已经将数据插入表,而是存储在内存里面等待排队。当mysql有空余时,再插入。
这样的好处是,提高插入的速度,客户端不需要等待太长时间。坏处是,不能返回自动递增的ID,以及系统崩溃时,MySQL还没有来得及插入数据的话,这些数据将会丢失。
insert delayed into t_user values(...);//
2.analyze table
3.尽量将列声明为NOT NULL
4.Mysql只用前缀索引,避免在已有索引前缀上再建立索引,如index(a,b)上不要再建立index(a)
5.索引装入Key Cache
Load index into cache table1;
6.干预索引使用,提高性能:
A.提供给Mysql参考,推荐Mysql使用某个索引
select * from t_user use index(index_city)where name like 'a%' and city like 'b%';
B.强制Mysql使用某索引
select * from t_user force index(index_city)where name like 'a%' and city like 'b%';
C.让mysql 忽略使用某索引
select * from t_user ignore index(index_city)where name like 'a%' and city like 'b%';
7.使用临时表提高查询性能
select SQL_BUFFER_RESULT * from t_user;//将大结果集放到临时表中,以释放表级锁
select SQL_BIG_RESULT city,count(*) from t_user group by city;//用于分组和DISTINCT关键字,通知mysql在有必要时将结果集放入临时表,甚至在临时表内排序
8.straight_join强制表连接顺序
select a.age,b.score from a straight_join b where...;//强制a连接b
9.查询缓存提高性能
select SQL_CACHE * from t_user;
select SQL_NO_CACHE * from t_user;//不会缓存查询结果,不会到缓冲区查找,会直接执行它。
10.调整执行的优先级
select high_priority * from t_user;//优先执行
INSERT DELAYED INTO,是客户端提交数据给MySQL,MySQL返回OK状态给客户端。而这是并不是已经将数据插入表,而是存储在内存里面等待排队。当mysql有空余时,再插入。
这样的好处是,提高插入的速度,客户端不需要等待太长时间。坏处是,不能返回自动递增的ID,以及系统崩溃时,MySQL还没有来得及插入数据的话,这些数据将会丢失。
insert delayed into t_user values(...);//
相关文章推荐
- MySQL 性能优化
- 从MySQL得到最大的性能 优化
- MySQL性能优化的参数简介
- MySQL 性能优化
- mysql 优化系列(一) Mysql数据库引擎性能测试
- MySQL性能优化
- MySQL性能优化
- [转]LAMP(Linux+Apache+MySQL+PHP)服务器的性能优化
- 本周ASP.NET英文技术文章推荐[很久以前 - 02/26]:Immutability、InterpolationMode、CompositingQuality、性能优化、单点登录、Spring.NET、Facebook、MySQL、Web Deployment Tool
- MySQL查询的性能优化
- MySQL 性能优化
- [转]LAMP(Linux+Apache+MySQL+PHP)服务器的性能优化
- php的mysql性能优化
- MySQL性能优化
- MySQL性能优化TIPS
- 对拥有一个几十万行表的 MySQL 性能优化的简单办法
- 从MySQL得到最大的优化性能
- MySQL性能优化
- MySQL查询的性能优化
- MySQL性能优化