zoukankan      html  css  js  c++  java
  • Mysql 性能优化6【重要】 索引优化

    b tree索引

    myisam 是通过物理位置来查找引用行的

    innodb 是通过主键来查找引用行的

     

    索引优化策略

    b-tree索引对数据长度有限制,所以text等比较长的列可以建立前缀索引

     btree索引对键值的大小是有限制的

    innodb 最大767字节,myisam 1000字节。 

    大字符串创建索引,不能 很好的提高效率。可以使用前缀索引

    为什么选择联合索引

    如果同时用到几个列作为查询条件,比每一个列建立单独的索引要快。

    什么是覆盖索引

    http://wzmtony.blog.163.com/blog/static/20318015620130173619641/

    覆盖索引概念:

      MySQL可以利用索引返回SELECT 列表中的字段。而不必根据索引再次读取数据文件。包含所有满足查询需要的数据的索引成为覆盖索引(Covering Index)。也就是平时所说的不需要回表操作。
    判断标准:
     在查询前面使用explain,可以通过输出的extra列来判断,对于一个索引覆盖查询,显示为using index,MySQL查询优化器在执行查询前会决定是否有索引覆盖查询。

    如果只读取索引就可以查找到所需要的数据的话,就会极大的较少数据的访问量。

    处理顺序IO要比随机IO要快

    模拟哈希索引步骤

    先创建title_md5的列,

    然后修改这个字段的值为 MD5(title)

    可以创建触发器修改此列

    查找的时候

    ------------------------------------------------------------------------------------------

     

  • 相关阅读:
    Difference Between Performance Testing, Load Testing and Stress Testing
    什么是测试策略?
    性能测试和压力测试的区别
    测试工程师培训体系
    Java测试工具
    浅谈HTTP中Get与Post的区别
    Python 读书系列
    Automation- watin
    脚本语言&& Performance Testing
    HDFS分布式集群安装
  • 原文地址:https://www.cnblogs.com/zhaoyang-1989/p/6906249.html
Copyright © 2011-2022 走看看