Mysql优化

Posted tjc123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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优化的主要内容,如果未能解决你的问题,请参考以下文章

如何优化C ++代码的以下片段 - 卷中的零交叉

从JVM的角度看JAVA代码--代码优化

部分代码片段

Android 逆向整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 dvmOptimizeDexFile() 方法分析 | /bin/dexopt 源码分析 )(代码片段

linux中怎么查看mysql数据库版本

从mysql的片段中加载ListView