mysql分别用数字INT和中文varchar做索引查询效率上差多少

性能相当

mysql中区别性能的是采用哪种索引方式,而不是索引的数据类型。

MySQL的btree索引和hash索引的区别

1. hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,
2. btree(B-Tree)索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,
3. 综上,hash 索引的查询效率要远高于 btree(B-Tree) 索引。

虽然 hash 索引效率高,但是 hash 索引本身由于其特殊性也带来了很多限制和弊端,主要有以下这些。

(1)hash 索引仅仅能满足=,<=>,IN,IS NULL或者IS NOT NULL查询,不能使用范围查询。
     由于 hash 索引比较的是进行 hash 运算之后的 hash 值,所以它只能用于等值的过滤,
     不能用于基于范围的过滤,因为经过相应的 hash 算法处理之后的 hash 值的大小关系,
     并不能保证和hash运算前完全一样。

(2)hash 索引无法被用来避免数据的排序操作。
     由于 hash 索引中存放的是经过 hash 计算之后的 hash 值,
     而且hash值的大小关系并不一定和 hash 运算前的键值完全一样,
     所以数据库无法利用索引的数据来避免任何排序运算;
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值