一、谨慎而有效的使用索引
使用explain命令是确定需要哪些索引的最好办法。在有些情况下,索引过多切分布很广的时候会大大降低插入和删除的性能。还会降低复制和恢复操作的性能。应该定期检查索引以确保它们都是有意义的且被使用了。应该删除没有被使用,使用有限制或分布很广的索引。
二 、使用规范化,但不要使用过头
规范化(至少是第三范式),在有些情况下,你可能希望违法这些规则。当使用那些经常被访问切分布有限的查找表时,会使系统性能降低。每次你使用查询信息,它们必须使用join以获取完整数据。join的开销很大,而且频繁访问会使开销随着时间逐渐增加。为了减少这种潜在的性能问题,可以使用枚举字段存储数据,而不是使用查找表存储数据。例如,可以使用枚举字段存储头发颜色,而不是创建表来存储头发颜色值.
三、使用正确的存储引擎
mysql支持多个存储引擎,每个存储引擎都具有独特的功能和用途,可以使数据库设计者通过使用最适合他们的应用程序的存储引擎来改善数据库系统的性能。使用SHOW ENGINES 命令查看那些存储引擎启用了。
InnoDB存储引擎支持事务,是mysql中目前唯一事务性的引擎。InnoDB中所有的索引都是B-trees,在这个B树中suo9yin记录被存储在树的叶子页。InnoDB适用于高性能和事务处理环境。
MyISAM存储引擎适用高级缓存和索引机制提高数据检索和索引速度,MYISAM和适合在各种应用程序要快速检索数据而不需要事务的时候。
三、通过Query Cache适用师徒来加速结果
视图是封装复杂查询的一个简便方法,可以使用视图来水平地(更少的列)或垂直地(SELECT 语句中使用WHERE子句)限制数据。使用视图来限定返回列,Query Cache村村频繁使用的查询结果,使用提供标准结果集的视图可以提高结果被缓存的

本文介绍了MySQL性能优化的关键方法,包括合理使用索引、规范化设计、选择合适的存储引擎、利用视图和查询缓存等手段来提升数据库性能。
最低0.47元/天 解锁文章
1164

被折叠的 条评论
为什么被折叠?



