您当前的位置:首页  >> 学无止境 >> 数据后台

Mysql数据库优化之索引优化

发布时间:2015-08-05 22:51:49来源:网络文摘作者:佚名

索引是帮助MySQL有效检索数据的一种数据结构,它是获得高性能的关键,但是人们常常忘记或者错误的理解了它,所以索引通常是现实中最常出现的性能问题

       索引是帮助MySQL有效检索数据的一种数据结构,它是获得高性能的关键,但是人们常常忘记或者错误的理解了它,所以索引通常是现实中最常出现的性能问题。 
       当你的数据变得很大时,索引变得非常重要,即使很轻负载的数据库没有恰当的索引,随着数据的增加,性能也会很快的下降。 
MySQL使用索引都是一种类似的方式,他首先对给定的值搜索索引结构,如果在索引中找到,再去找包含匹配的行。 
       当你对多于一行的数据建索引的时候,索引的次序很重要,因为MySQL只能使用索引的最左前缀来有效进行搜索。对两列进行建索引和分别对单个列检索是不同的。 

      索引类型 
     有很多类型的索引,每种索引的设计在不同的目的下达到高效,索引是在存储引擎下实现的,并不是在服务层,因此他并没有被标准化:索引在不同的存储引擎不同,不是所有的引擎都支持所有的索引类型。即使多个索引支持同一种索引类型,也可能有不同的实现。

     B-Tree索引 
当人们谈论索引但没有提及类型时,他们通常指的是B-Tree索引,使用B-Tree的数据结构来存储索引。大多数的存储引擎支持这种索引类型。 

     Hash索引: 
      hash索引是基于hash表构建的,仅仅对精确查找索引中的列有用。对于每一行,存储引擎 
对索引列计算hash code,它在索引中存储hash code和指向行的指针。 在MySQL中,只有Memory存储引擎支持显式的hash索引,是其默认的索引类型,但是Memory表可以使用B-Tree索引。 

      空间(R-Tree)索引 
MyISAM支持空间索引,你可以使用地理空间类型比如geometry。不想B-Tree索引,空间索引不需要是最左前缀的。它同时索引所有维度的数据。这样,查询可以有效使用任何维度组合。

     全文索引 
全文索引是MyISAM的一种特殊的索引类型。他可以在文本中查找关键字,而不是直接比较在 
索引中的值。全文索引和其他类型的匹配完全不同。在一个列建全文索引并不会影响在这列建立B-tree索引。全文索引只对MATCH AGAINST操作有效,对普通的WHERE是无效的 

关键词: mysql 索引 数据结构 全文检索
分享到:

栏目最新

点击排行