Maison > base de données > tutoriel mysql > le corps du texte

Mysql 性能优化

WBOY
Libérer: 2016-05-31 08:47:21
original
933 Les gens l'ont consulté

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.调整执行的优先级

 selecthigh_priority* from t_user;//优先执行

 INSERT DELAYED INTO,是客户端提交数据给MySQL,MySQL返回OK状态给客户端。而这是并不是已经将数据插入表,而是存储在内存里面等待排队。当mysql有空余时,再插入。

这样的好处是,提高插入的速度,客户端不需要等待太长时间。坏处是,不能返回自动递增的ID,以及系统崩溃时,MySQL还没有来得及插入数据的话,这些数据将会丢失。

insert delayed into t_user values(...);//

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!