技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> MySQL --> mysql query & index tuning

mysql query & index tuning

浏览:1875次  出处信息

    今天重温了下,其实mysql优化掌握基本的几个原则就可以.假如还有性能问题,那就不是优化能解决的,需要其他的解决方案

    1:mysql server overview

    2:slow query logging

    3:the explain statement

    4:things to avoid in queries

    a:不要使用关联比较多的子查询

    b:mysql版本的影响:mysql5以前一般使用一个索引/mysql5一般避免or操作(带来全表扫描)

    5:indexing strategies

    a:增加索引的可选择性:the ratio of the number of distinct values in the indexed column to the number of records

    应该避免全表扫描(使用explain)

    b:覆盖索引

    索引匹配的结果更小,索引能够有效的放入内存中(等于是cache数据),另外myisam对索引能够进行压缩(索引更小)

    索引是根据索引值来进行排序的,因此IO限制范围的访问相对比从随机硬盘位置所需的IO是较少的.

    注意otimize对myisam索引的优点

    对于myisam这样的索引,由操作系统托管缓存数据,所以对系统有很大影响.

    覆盖索引对与InnoDB表有些特殊的效用.因为InnoDB是聚簇索引.InnoDB的次要索引在它们叶子节点保存了行的主键

    c:重复索引

    重复的索引是那些具有相同类型,在同顺序下的相同一组索引.你应该避免这样来创建它们并且如果发现它们要尽早的删除

    d:冗余索引

    一般情况下冗余索引是没有任何帮助的,但是假如扩展索引的时候发现索引很大,冗余索引能够解决性能问题.

    6:mysql optimizer

    cost-based:一般使用索引可选择性来选择使用哪种方式optimizer

    rule-based

    7:schema guidelines

    尽量使用小的数据类型,这样更能放入内存.开始设计的时候使用范式,后期要使用反范式

    8:query cache

    9:benchmarking

    a:压力测试条件:

    配置my.cnf

    修改索引

    修改表结构

    改变sql查询

    压力测试需要注意网络问题,禁用qcache

    b:压力测试框架

    延伸阅读:

    http://www.slideshare.net/manikandakumar/mysql-query-and-index-tuning

    http://xiayuanfeng.javaeye.com/blog/436904

    http://xiayuanfeng.javaeye.com/blog/430852

建议继续学习:

  1. WEB系统需要关注的一些点    (阅读:14108)
  2. 30分钟3300%性能提升――python+memcached网页优化小记    (阅读:12128)
  3. 基于SSD的数据库性能优化    (阅读:7412)
  4. jQuery性能优化指南    (阅读:7325)
  5. 一次简单C程序的性能优化    (阅读:5598)
  6. mysql sql 百万级数据库优化方案    (阅读:5057)
  7. PHP最佳实践    (阅读:4952)
  8. 一次神奇的MySQL优化    (阅读:4895)
  9. Linux 64位, MySQL, Swap & Memory 优化    (阅读:4482)
  10. PHP 性能优化技巧-google    (阅读:4415)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:数据库使用的规划
后一篇:NoSQL漫谈 >>
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1