首页 > 代码库 > Mysql优化

Mysql优化

做一件事,一般遵循几个原则:为什么做,怎么做,要达到什么目标。

之所以要进行SQl优化,是因为在现有的硬软件资源下,数据库的性能表现未能达到预期。

故要做到在当前硬软件资源不变的情况下,大幅度提高数据库性能,以达到或超出我们的预期。

数据库级别的优化:

是否具有适当的表结构

是否在合适的地主加上了下压角的索引

表是否使用了正确遥存储引擎

是否为表进行了适当的行格式化(如行压缩)

是否使用了正确的锁策略

是否进行了正确的数据缓存

硬件级别的优化:

如果是IO瓶颈,则分布到多块硬盘并行读写。

如果是CPU瓶颈,就需要考虑到集群。

最常用的还是SQL语句优化:

  SELECT 语句的优化:

1首先检查是否加了索引。

2d在SELECT中是否使用了耗时函数,需尽量避免

3尤其是大表,尽量避免全表扫描

4更新表的统计信息,使优化器能生成有效的执行计划

5 尽量使SQl趋向于优化器,便于其理解

6对于一个复杂SQL,无法直接使用上述方法,则可通过EXPLAIN 分析其执行计划,然后不断调节

(When you reach a certain level of expertise, reading the EXPLAIN plan might be your first step for every query.)

7调节Mysql用于缓存的内存区域大小及属性,充分利用InnoDB buffer pool  和MyISAM key cache,及Mysql query cache,对于重复Query可更快执行

8 处理好锁问题。

Mysql优化