当前位置: 首页 > news >正文

江门门户网站广州网站营销seo

江门门户网站,广州网站营销seo,网上购物平台哪家质量最好,建筑设计为何没人干了在MySQL中,为了加速查询,使用B树来构建索引,将查询性能从O(n)优化到O(log n)。虽然跳表同样提供O(log n)的查询效率并且实现相对简单,但B树更适合MySQL的索引使用,原因包括: B树和跳表的区别 B树和跳表的…

在MySQL中,为了加速查询,使用B+树来构建索引,将查询性能从O(n)优化到O(log n)。虽然跳表同样提供O(log n)的查询效率并且实现相对简单,但B+树更适合MySQL的索引使用,原因包括:

B+树和跳表的区别

B+树和跳表的最下面一层,都包含了所有的数据,且都是顺序的,适合用于范围查询。往上的层级都是构建出来用于提升搜索性能的。这两者实在是太像了。但他们两者在新增和删除数据时,还是有些区别的。下面我们以新增数据为例聊一下。

MySQL的索引为什么使用B+树而不使用跳表?

B+树是多叉树结构,每个结点都是一个16k的数据页,能存放较多索引信息,所以扇出很高。三层左右就可以存储2kw左右的数据(知道结论就行,想知道原因可以看其他的文章)。也就是说查询一次数据,如果这些数据页都在磁盘里,那么最多需要查询三次磁盘IO。

跳表是链表结构,一条数据一个结点,如果最底层要存放2kw数据,且每次查询都要能达到二分查找的效果,2kw大概在2的24次方左右,所以,跳表大概高度在24层左右。 最坏情况下,这24层数据会分散在不同的数据页里,也即是查一次数据会经历24次磁盘IO。

因此存放同样量级的数据,B+树的高度比跳表的要少,如果放在mysql数据库上来说,就是磁盘IO次数更少,因此B+树查询更快。

而针对写操作,B+树需要拆分合并索引数据页,跳表则独立插入,并根据随机函数确定层数,没有旋转和维持平衡的开销,因此跳表的写入性能会比B+树要好。

其实,mysql的存储引擎是可以换的,以前是myisam,后来才有的innodb,它们底层索引用的都是B+树。也就是说,你完全可以造一个索引为跳表的存储引擎装到mysql里。事实上,facebook造了个rocksDB的存储引擎,里面就用了跳表。直接说结论,它的写入性能确实是比innodb要好,但读性能确实比innodb要差不少。

http://www.yayakq.cn/news/351714/

相关文章:

  • 知名网站建设制作做网站的好公司有哪些
  • 江门cms模板建站百度推广开户代理商
  • 郴州网站制作公司地址创客贴设计网站官网
  • 做网站赚谁的钱企业官网设计图
  • 英文网站建设600wordpress分类链接打不开
  • 邗江区建设局网站深圳企业网站建设服务公司
  • 小厂建网站做电影网站有什么好处和坏处
  • 中山网站建设推荐北京专业的做网站
  • 罗湖专业做网站公司网站建设业务提成
  • 济南公司网站开发静态网站怎么优化
  • 最好的网站建设推广网站验收流程
  • wordpress程序网站大连企业建站系统
  • 建设企业网站个人网上建网站的系统
  • 企业网站的特点是什么中文网站建设公司
  • 哪里有网站建设开发公司网站建站推广
  • 在线做网站需要什么国内c2c电子商务平台有哪些
  • 网站忧化 推广同时做wordpress批量信息导入
  • 哪些网站是做食品中国工商注册网企业年报系统
  • spring可以做多大的网站微信代运营的公司网站
  • 东戴河网站建设dede 网站地图模版
  • 建站专家网站建设系统推广app赚钱项目
  • 网站建设到运营需要多少钱企业网站建设到底应该注意什么
  • 三亚网站建设费用扬州外贸网站seo
  • 深圳建网站企业网站 手机版
  • 刷题小程序制作平台站内seo的技巧
  • 昆明做网站建设硬件设备行业信息采集软件
  • 大网站前端怎么做的网址域名注册
  • h5手机模板网站wordpress设置留言板
  • 东莞手机网站建设入门旅游网站建设流程是什么意思
  • 食品网站的功能定位建设执业资格注册中心网站