mysql特效_MySQL树 – 前端开发,JQUERY特效,全栈开发,vue开发
树
树状图是一种
数据结构,它是由n(n>=1)个有限结点组成一个具有层次关系的
集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 它具有以下的特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树
根结点 : A 父节点 : A是B,C的父节点 叶子节点:D,E是叶子节点 树的深度/树的高度:高度为3
B+树
前面讲了索引的基本原理,数据库的复杂性,又讲了操作系统的相关知识,目的就是让大家了解,任何一种数据结构都不是凭空产生的,一定会有它的背景和使用场景,我们现在总结一下,我们需要这种数据结构能够做些什么,其实很简单,那就是:每次查找数据时把磁盘IO次数控制在一个很小的数量级,最好是常数数量级。那么我们就想到如果一个高度可控的多路搜索树是否能满足需求呢?就这样,b+树应运而生(B+树是通过二叉查找树,再由平衡二叉树,B树演化而来)。
b+树性质
索引字段要尽量的小:
通过上面的分析,我们知道IO次数取决于b+数的高度h,假设当前数据表的数据为N,每个磁盘块的数据项的数量是m,则有h=㏒(m+1)N,当数据量N一定的情况下,m越大,h越小;而m = 磁盘块的大小 / 数据项的大小,磁盘块的大小也就是一个数据页的大小,是固定的,如果数据项占的空间越小,数据项的数量越多,树的高度越低。这就是为什么每个数据项,即索引字段要尽量的小,比如int占4字节,要比bigint8字节少一半。这也是为什么b+树要求把真实的数据放到叶子节点而不是内层节点,一旦放到内层节点,磁盘块的数据项会大幅度下降,导致树增高。当数据项等于1时将会退化成线性表。
索引的最左匹配特性:
当b+树的数据项是复合的数据结构,比如(name,age,sex)的时候,b+数是按照从左到右的顺序来建立搜索树的,比如当(张三,20,F)这样的数据来检索的时候,b+树会优先比较name来确定下一步的所搜方向,如果name相同再依次比较age和sex,最后得到检索的数据;但当(20,F)这样的没有name的数据来的时候,b+树就不知道下一步该查哪个节点,因为建立搜索树的时候name就是第一个比较因子,必须要先根据name来搜索才能知道下一步去哪里查询。比如当(张三,F)这样的数据来检索时,b+树可以用name来指定搜索方向,但下一个字段age的缺失,所以只能把名字等于张三的数据都找到,然后再匹配性别是F的数据了, 这个是非常重要的性质,即索引的最左匹配特性。
作者:村里唯一的架构师
mysql特效_MySQL树 – 前端开发,JQUERY特效,全栈开发,vue开发相关推荐
- Web前端技术分享:全栈工程师常用的开发工具
全栈工程师,也叫全端工程师,是指掌握多种技能,并能利用多种技能独立完成产品的人.全栈工程师熟悉多种开发语言,同时具备前端和后台开发能力,从需求分析,原型设计到产品开发,测试,部署,发布全流程都十分熟悉 ...
- Web开发前端、后端与全栈的区别是什么?
刚入门Web开发者总会听到前端开发.后端开发.全栈开发等岗位描述及相关介绍说明.很多人不清楚前端.后端.全栈到底指的是什么?对应岗位需求是什么?本文主要从三者概念.技术内容要求等角度对前端.后端及全栈 ...
- 前端和后端哪个工资高_前端、后端、全栈都是干嘛的?哪个薪资高?
刚入门Web开发者总会听到前端开发.后端开发.全栈开发等岗位描述及相关介绍说明.很多人不清楚前端.后端.全栈到底指的是什么?对应岗位需求是什么? 俗话说"磨刀不误砍柴工",了解了互 ...
- 前端、后端、全栈都要学什么?薪资前景如何?
随着信息产业的迅猛发展,IT行业人才需求量也在逐年扩大. 据国内权威数据统计,未来五年,我国信息化人才总需求量高达1500万-2000万人.其中"软件开发"."网络工程& ...
- 后端返回list前端如何处理_前端、后端、全栈是什么?薪资前景如何?
随着信息产业的迅猛发展,IT行业人才需求量也在逐年扩大. 据国内权威数据统计,未来五年,我国信息化人才总需求量高达1500万-2000万人.其中"软件开发"."网络工程& ...
- 前端和后端的英文_前端、后端、全栈是什么意思?薪资怎么样?
随着互联网行业的飞速发展,对专业的IT技能人才的需求量也随之变大. 据统计,未来五年,我国互联网人才需求量还会持续增长,预计需求量达到1500万-2000万,以软件开发为例,我国软件开发人才每年都在增 ...
- (Node+Vue+微信公众号开发)企业级产品全栈开发速成周末班
(Node+Vue+微信公众号开发)企业级产品全栈开发速成周末班 从零到壹全栈部落 产品:个人独立博客,21点见 Vue + Node + MongoDB支持服务端渲染的博客系统(5天) 开发环境技术 ...
- 对前端、后端和全栈感兴趣的人,建议都看看!18年老程序员给你指点迷津
各位读者朋友们好,我是龙叔,1名退休老码农,如果从工作算起的话我的码龄有18年,今天我来对前端.后端.全栈这3个方面分享一下我的见解,对于准备学编程或者刚学编程不久的小友,让我来给你们拨开迷雾. 看完 ...
- 软硬结合——写给硬件开发工程师的全栈入门实战
特别注意: 教程已经迁移到:www.scaugreen.cn 软硬结合--写给硬件开发工程师的全栈入门实战 作者水平 读者水平要求 整个项目简单介绍 教程特点 为什么使用nodejs 开始 提问 提问 ...
最新文章
- 实时目标检测--Pelee: A Real-Time Object Detection System on Mobile Devices
- 多尺度人脸检测--Face Detection through Scale-Friendly Deep Convolutional Networks
- android jni 将BYTE* 和 jbyteArray 之间的转换
- matlab生成exe独立运行文件已破解(好用)
- 手把手教你用nodejs+SQL Server2012做增删改查
- 冲刺OPhone2.5:夏新已经下定决心
- python turtle详细教程_python 中的turtle使用教程
- 接口调用导致阻塞_RocketMQ与Dubbo之间线程之间如何阻塞和唤醒
- Eclipse中 搭建 Spring+SpringMVC+Mybatis整合(下)
- 特征工程(三):特征缩放,从词袋到 TF-IDF
- 移动医疗的服务怎么做?来听听传统医疗器械厂商怎么说
- 【转】:localStorage使用总结
- ISO14001与ISO45001都是什么认证?
- 在线计算机进制换算,进制转换计算器
- 数据中台之血缘篇:Atlas 详解
- php sybase存储过,SYBASE存储过程详解
- 计算机13E怎么转换成十进制,十六进制换算(进制转换计算器)
- c语言二维数组a中,a,a[0],a[0][0]的值与值的类型
- Proxmox VE(PVE)+ceph+物理网络规划-超融合生产环境安装部署案例
- 华为服务器显示红色的心跳,服务器的心跳线
热门文章
- 笨办法学python3.6 pdf_“笨办法”学Python3.pdf
- 学生电脑哪个牌子好_专卖工作服哪个牌子好
- 交通预测论文笔记:Spatio-Temporal Graph Convolutional Networks: A Deep Learning Frameworkfor Traffic Forecast
- 电脑销售技巧_汝州市,如何查询楼盘详细销售数据?官方公布,精确到房间
- 将tif文件转化为png文件 Python3
- ModuleNotFoundError: No module named ‘lib.utils.cython_bbox‘
- LeetCode题组:第13题-罗马数字转整数
- LeetCode-位运算-36. 只出现一次的数字
- Python 'takes exactly 1 argument (2 given)' Python error
- 【Cocosd2d实例教程四】Cocos2d实现人物原地走动