首页 > 数据库 >mysql

mysql

时间:2024-01-29 12:24:44浏览次数:27  
标签:hash 查询 回表 索引 查找 mysql 主键

主键为什么推荐使用int long

1、建立主键索引的树,主键如果为int,long,比较大小时,比较快,可以快速定位到需要的数据
2、存储小,所以不推荐uuid,uuid查询慢

为什么推荐主键自增?

1、主键自增时,新插入的数据都是递增的,在维护B+树时,不需要在中间插入值,只需要追加到最后,也就意味着不需要分裂,因为分裂影响性能
2、趋势递增也可以,比如雪花算法, 但是uuid就不行

hash的结构?

hash是一个一维的数组,加一个二维的链表

存储数据为什么使用B+树,不使用hash?

1、hash查找虽然比B+树要快,但是hash不支持范围查找
2、hash做等值查找非常快,做范围查找等于全表扫描
3、hash不能做排序
4、示例: select * from t where t.name > 'tom';

hash索引和b+树索引的区别

hash索引底层就是hash表,进行查找的时候调用一次hash函数就可以获取到相应的键值,之后进行回表查询就可以查到需要的数据
B+树地层实现是多路平衡查找树,每一次查询都是从根节点出发,查找到叶子结点,才能查到需要的键值,如果需要回表,再回表查询一次即可得到需要的数据
大多数情况下直接选择b+树索引可以获得稳定且较好的查询速度

1、hash索引等值查询速度较快,但无法进行范围查询,因为在hash索引中,经过hash函数建立索引后,是无序的。B+树,左子结点小于当前节点,右子节点大于当前节点,天然支持范围查询
2、hash索引不支持模糊查询
3、hash索引,一定会回表查询,b+树在聚簇索引查询或者索引覆盖时,没有回表操作
4、hash索引虽然等值查询比较快,但是不够稳定,hash冲突可能会导致同一个hash值有大量的键值,导致性能较差;b+树查询效率比较稳定

标签:hash,查询,回表,索引,查找,mysql,主键
From: https://www.cnblogs.com/jis121/p/17994243

相关文章

  • GaussDB(for MySQL)剪枝功能,让查询性能提升70倍!
    作者,祝青平,华为云数据库内核高级工程师。擅长数据库优化器内核研发,9年数据库内核研发经验,参与多个TP以及AP数据库的研发工作。近日,华为云数据库社区下面有这样一条用户提问留言:请问,如何通过MySQL提升DISTINCT,尤其是多表连接下DISTINCT的查询效率?在回答这个问题之前,我们先了解一下DI......
  • MySQL InnoDB引擎架构
    逻辑存储结构:表空间(ibd文件):一个mysql实例可以对应多个表空间,用于存储记录,索引等数据。段:分为数据段(Leafnodesegment),索引段(Non-leafnodesegment)、回滚段(Rollbacksegment),InnoDB是索引组织表,数据段就是B+树的叶子节点,索引段即为B+树的非叶子节点。段用来管理多个Exte......
  • mysql锁
    锁分类读锁(共享锁)写锁(排他锁)按照锁的粒度划分全局锁锁整个数据库,一般用于数据迁移、数据备份表锁一般用于altertable、droptable、truncktable、locktable行所select...forudpate、insert、update、delete间隙锁select...fromstudentwhereid>=10and......
  • Windows 安装 MySQL 5.8 -- 输入3次 密码错误锁定账户
    安装下载地址:https://downloads.mysql.com/archives/installer/需要有.netframework4.5.2及以上版本才能安装MySQL5.8选择自定义安装选择要安装的服务修改安装路径设置ROOT密码,测试错误锁定帐号MySQL8.0.19版本之后,新增了一个功能,支持了输入3次......
  • Linux环境安装MYSQL
    一、卸载MariaDB##查看是否安装rpm-qa|grepmariadb##卸载rpm-e--nodepsmariadb-libs 二、资源包准备2.1官网下载https://dev.mysql.com/downloads/mysql/ 2.2上传安装包,并解压#.tar.gz后缀:tar-zxvf文件名#.tar.xz后缀:tar-Jxvf文件名tar-xvf......
  • 【Lazy ORM 整合druid 实现mysql监控】
    LazyORM整合druid实现mysql监控JDK17LazyORM框架地址up、up欢迎start、issues当前项目案例地址框架版本描述spring-boot3.0.7springboot框架wu-framework-web1.2.2-JDK17-SNAPSHOTweb容器Lazy-ORM1.2.2-JDK17-SNAPSHOTORMmysql-connector-j8.0.33mysql驱动druid-spring-boo......
  • MySQL数据库连接报错1130 - Host 'xxx' is not allowed to connect to this MySQL ser
    目录现象描述原因分析解决办法:本文解决MySQL数据库连接报错1130-Host'xxx'isnotallowedtoconnecttothisMySQLserver。返回目录返回目录现象描述MySQL数据库,使用Navicat、root用户连接报错:原因分析这个报错原因是权限问题,需要修改连接权限。进入mysql......
  • MySQL查看默认密码和修改密码
    目录查看默认密码1.查找日志目录2.vim查看3.搜索password关键字修改密码1.使用默认密码登陆2.修改密码3.立即生效查看默认密码1.查找日志目录find/-namemysqld.log2.vim查看3.搜索password关键字修改密码1.使用默认密码登陆2.修改密码......
  • 【亲测管用】Linux环境下MySQL 8.0重置密码
    这个问题折磨了我有两三个小时了,看了一大堆博客,大多数都不好用,真的怀疑有没有亲自试用过。本文使用的服务器为阿里云的服务器Linux系统,MySQL的版本为8.0。修改密码操作如下,供大家参考:在/etc/my.cnf中添加如下代码,使其支持免密登录[mysqld]skip-grant-tables重启MySQL服......
  • MySQL必知必会 pdf下载
    《MySQL必知必会》MySQL是世界上最受欢迎的数据库管理系统之一。书中从介绍简单的数据检索开始,逐步深入一些复杂的内容,包括联结的使用、子查询、正则表达式和基于全文本的搜索、存储过程、游标、触发器、表约束,等等。通过重点突出的章节,条理清晰、系统而扼要地讲述了读者应该掌握......