mysql 存储引擎对索引的支持 |
您所在的位置:网站首页 › 不同搜索引擎支持的文件类型不同 › mysql 存储引擎对索引的支持 |
自适应hash索引原理 1、原理过程 Innodb存储引擎会监控对表上二级索引的查找,如果发现某二级索引被频繁访问,二级索引成为热数据,建立哈希索引可以带来速度的提升,则: 1、自适应hash索引功能被打开 mysql> show variables like '%ap%hash_index'; +----------------------------+-------+ | Variable_name | Value | +----------------------------+-------+ | innodb_adaptive_hash_index | ON | +----------------------------+-------+ 1 row in set (0.01 sec)2、经常访问的二级索引数据会自动被生成到hash索引里面去(最近连续被访问三次的数据),自适应哈希索引通过缓冲池的B+树构造而来,因此建立的速度很快。 2、特点 1、无序,没有树高 2、降低对二级索引树的频繁访问资源 索引树高 show engine innodb status\G …… Hash table size 34673, node heap has 0 buffer(s) 0.00 hash searches/s, 0.00 non-hash searches/s 1、34673:字节为单位,占用内存空间总量 2、通过hash searches、non-hash searches计算自适应hash索引带来的收益以及付出,确定是否开启自适应hash索引 2、限制 1、只能用于等值比较,例如=, ,in 2、无法用于排序 3、有冲突可能 4、MySQL自动管理,人为无法干预。 3、自适应哈希索引的控制 由于innodb不支持hash索引,但是在某些情况下hash索引的效率很高,于是出现了adaptive hash index功能,但是通过上面的状态监控,可以计算其收益以及付出,控制该功能开启与否。 默认开启,建议关掉,意义不大。可以通过 set global innodb_adaptive_hash_index=off/on 关闭和打开该功能。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |