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优化的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 dvmOptimizeDexFile() 方法分析 | /bin/dexopt 源码分析 )(代码片段