|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
尽管MySQL也有一个认证培训项目,但是它的培训却要比Oracle或MS-SQL相差很远。尽管有的使用MySQL的用户表示,MySQL很容易上手,但是对于具有企业级数据库需求的用户来说, MySQLHash索引和B-Tree索引的区分事实在那里呢?信任良多人都有如许的疑问,下文对二者的区分举行了具体的剖析,供您参考。
MySQLHash索引布局的特别性,其检索效力十分高,索引的检索能够一次定位,不像B-Tree索引必要从根节点到枝节点,最初才干会见到页节点如许屡次的IO会见,以是Hash索引的查询效力要远高于B-Tree索引。
可能良多人又有疑问了,既然Hash索引的效力要比B-Tree高良多,为何人人不都用Hash索引而还要利用B-Tree索引呢?任何事物都是有两面性的,Hash索引也一样,固然Hash索引效力高,可是Hash索引自己因为其特别性也带来了良多限定和坏处,次要有以下这些。
(1)MySQLHash索引仅仅能满意"=","IN"和"<=>"查询,不克不及利用局限查询。
因为MySQLHash索引对照的是举行Hash运算以后的Hash值,以是它只能用于等值的过滤,不克不及用于基于局限的过滤,由于经由响应的Hash算法处置以后的Hash值的巨细干系,其实不能包管和Hash运算前完整一样。
(2)MySQLHash索引没法被用来制止数据的排序操纵。
因为MySQLHash索引中寄存的是经由Hash盘算以后的Hash值,并且Hash值的巨细干系其实不必定和Hash运算前的键值完整一样,以是数据库没法使用索引的数据来制止任何排序运算;
(3)MySQLHash索引不克不及使用部分索引键查询。
关于组合索引,Hash索引在盘算Hash值的时分是组合索引键兼并后再一同盘算Hash值,而不是独自盘算Hash值,以是经由过程组合索引的后面一个或几个索引键举行查询的时分,Hash索引也没法被使用。
(4)MySQLHash索引在任什么时候候都不克不及制止表扫描。
后面已晓得,Hash索引是将索引键经由过程Hash运算以后,将Hash运算了局的Hash值和所对应的行指针信息寄存于一个Hash表中,因为分歧索引键存在不异Hash值,以是即便取满意某个Hash键值的数据的纪录条数,也没法从Hash索引中间接完成查询,仍是要经由过程会见表中的实践数据举行响应的对照,并失掉响应的了局。
(5)MySQLHash索引碰到大批Hash值相称的情形后功能其实不必定就会比B-Tree索引高。
关于选择性对照低的索引键,假如创立Hash索引,那末将会存在大批纪录指针信息存于统一个Hash值相干联。如许要定位某一笔记录时就会十分贫苦,会华侈屡次表数据的会见,而形成全体功能低下。
<Pstyle="TEXT-INDENT:2em">
也许最好的策略是以不变应万变:给客户他们所需要的,不多也不少。如果MySQL学习教程适合他们,他们就不应该买别的工具。事实上,云计算产业一直推崇自助服务,但提供这些服务的公司已经开始认识到解决方案提供商推销他们商品的价值。 |
|