开发者

MySQL数据库的性能优化

目录
  • 一、mysql数据库的优化目标、基本原则:
    • 1、优化目标:
    • 2.基本原则:
  • 二、定位分析SQL语句的性能瓶颈:
    • 1、通过show status 命令了解各种SQL的执行效率:
    • 2、定位执行效率较低的SQL语句
    • 3、通过explain分析慢SQL的执行计划
    • 4、通过show pandroidrofile 分析SQL的具体耗时瓶颈
  • 三、数据库的优化方法:

    一、MySQL数据库的优化目标、基本原则:

    1、优化目标:

    MySQL数据库是常见的两个瓶颈是CPU和I/O的瓶颈,无论是索引优化、还是表结构优化,参数优化,最后都可以归纳到这这两个分类中:

    (1)减少 I/O 次数:

    I/O是数据库最容易瓶颈的地方,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考虑,当然,也是效果最明显的优化手段。

    (2)降低 CPU 计算:

    除了 IO 瓶颈之外,SQL优化中需要考虑的就是 CPU 运算量的优化了。order by,group by,distinct … 都是消耗 CPU 的大户(这些操作基本上都是 CPU 处理内存中的数据比较运算)。当我们的 IO 优化做到一定阶段之开发者_oracle后,降低 CPU 计算也就成为了我们 SQL 优化的重要目标。

    2.基本原则:

    1).优先优化高并发的 SQL,而不是执行编程客栈频率低某些“大”SQL

    对于破坏性来说,高并发的 SQL 总是会比低频率的 SQL 来得大,因为高并发的 SQL 一旦出现问题,甚至不会给我们任何喘息的机会就会将系统压跨。而对于一些虽然需要消耗http://www.devze.com大量 IO 而且响应很慢的 SQL,由于频率低,即使遇到,最多就是让整个系统响应慢一点,但至少可能撑一会儿,让我们有缓冲的机会

    2).从全局出发优化,而不是片面调整

    SQL 优化不能是单独针对某一个进行,而应充分考虑系统中所有的 SQL,尤其是在通过调整索引优化 SQL 的执行计划的时候

    3).尽可能对每一条运行在数据库中的SQL进行 explain

    优化 SQL,知道 SQL 的执行计划判断是否有优化余地,判断是否存在执行计划问题。

    进行大量的 explain 操作收集执行计划,并判断是否需要进行优化

    二、定位分析SQL语句的性能瓶颈:

    1、通过show status 命令了解各种SQL的执行效率:

    show [session | global] status;

    android

    可以根据需要加上参数来显示session级(当前连接,默认)和global级(自数据库上次启动至今)的统计结果。

    show status like ‘Com_%’; —显示当前连接所有统计参数的值。

    Com_xxx表示每个xxx语句执行的次数,通常需要注意的是下面几个参数:

    Com_select/Com_insert/Com_update/Com_delete

    2、定位执行效率较低的SQL语句

    (1)通过show processlist命令实时查看当前SQL的执行情况;

    (2)通过慢查询日志定位出现的问题

    3、通过explain分析慢SQL的执行计划

    4、通过show profile 分析SQL的具体耗时瓶颈

    通过secect @have_profiling命令能够看到当前MySQL是否支持profile;

    通过show profiles我们能够更清楚了解SQL执行的过程;

    通过show profile for query我们能看到执行过程中线程的每个状态和消耗的时间。

    三、数据库的优化方法:

    1、设计符合范式的数据库

    2、选择合适的存储引擎

    3、SQL表结构、字段优化

    4、SQL语句优化与索引优化

    5、读写分离:主数据库负责写操作,从数据库负责读操作

    6、分库分表:垂直切分与水平切分

    7、分区:将表的数据按照特定的规则放在不同的分区,提高磁盘的IO效率,提高数据库的性能

    8.数据库参数优化:IO参数、CPhttp://www.devze.comU参数

    9.数据库集群

    10.硬件配置升级

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新数据库

    数据库排行榜