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

班级网站首页设计企业培训课程种类

班级网站首页设计,企业培训课程种类,单页网站源码下载,佛山做网站推广InnoDB索引原理全程实操指南#xff0c;带你从入门到精通 每日一句前言概述正文介绍索引的介绍创建索引聚集索引非聚集索引**如果我的表没有建立主键该怎么办呢#xff1f;** 索引原理什么情况不去聚集索引树去查询#xff1f;版权声明 每日一句 不要停顿,因为别人会超过你;… InnoDB索引原理全程实操指南带你从入门到精通 每日一句前言概述正文介绍索引的介绍创建索引聚集索引非聚集索引**如果我的表没有建立主键该怎么办呢** 索引原理什么情况不去聚集索引树去查询版权声明 每日一句 不要停顿,因为别人会超过你;不要返顾,以免摔倒。 ——阿·雷哈尼 前言概述 索引就如同一本书一样当用户希望检索海量数据中自己想要的数据信息的时候例如用户去查一些生僻的字的时候最好的办法就是通过字典索引目录去筛选范围最后定位到了我们想要的数据所在的页数。这样可以大大的提高我们的查询检索速度所以使用索引可以大大的提高数据库的检索数据的性能和速度。 正文介绍 如果说上面的前言概述说的还是过于抽象的化以及不够深入的化那么就让我们一起迈向MySQL的Innodb存储引擎的领域吧想跟大家说明的是针对于SQL Server、Oracle、DB2、或者MySQL的MySiam存储引擎是不一定成立的请大家不要混为一谈。 索引的介绍 众所周知MySQL数据库的索引从物理结构上区分主要分为聚集索引和非聚集索引。在平时使用的的MySQL数据库中创建索引的语句 create [unique|fulltext|spatial] index index_name [using index_type] on table_name(colum [asc/desc]);创建索引 聚集索引 聚集索引一般不用我们专门的语句去做另外的生成在Innodb存储引擎中MySQL中的数据是按照主键顺序那么聚集索引就是按照每张表的主键来构造一个B树因此每张表只能有一个聚集索引哦。此外聚集索引存储了行的数据信息也就是聚集索引其本身就是一个数据每一个B树的叶子节点都是一行数据信息此外数据的排序顺序也是按照聚集索引的顺序进行排序。 一般情况下聚集索引默认就是主键索引 非聚集索引 复合索引多个字段进行共同建立负责索引的功能。前缀索引最左匹配原则以最左边的元素建立索引。唯一索引每个索引元素都是唯一的索引。 上面这几种索引类型一般叫做辅助索引(二级索引)在这里我们叫做非聚集索引它们的底层数据结构为B树。 如果我的表没有建立主键该怎么办呢 每一个行数据都会存在隐藏字段比如ROW_ID、DELETE_SIT,会用ROW_ID来作为聚集索引但是也不会立刻就会用还会存在判断和其他字段进行控制。 如果没有主键就会用一个唯一索引且非空字段进行作为主键也就是聚集索引如果也没有上述的字段及索引的话就会用上述描述的隐藏字段:ROW_ID作为聚集索引 注意针对于自增主键和uuid作为主键的区别由于主键使用的是聚集索引因为聚集索引是有序的如果主键属于自增的ID的话那么存储的位置肯定是相邻的磁盘位置这样子的话写入性能很好但是如果是UUID的话如果频繁插入的话就会存在频繁的移动寻址到不同的磁盘快所以写入性能会很差。 索引原理 先来了一张主键的表如下所示pid是主键 pidnamebirthday5zhangsan2020-12-128list2021-12-1211wangwu2016-12-1213zhaoliu2016-12-12 如图所示分为上下两个部分上部分为主键索引B树下半部分就是磁盘上而是的真是数据当然执行下面的语句 select * from table where pid 11;那么执行过程 如上图所示从根节点开始需要查找三次树操作可以定位到对应的实际数据信息。但是如果不使用索引那就要在磁盘上进行逐行扫描直到找到数据位置。 所以可以看出来如果速度非常快但是如果存在着操作数据比如新增数据、修改数据、删除数据。这种情况需要进行维护相关的索引数据对象因此我们引入了非聚集索引。 create index table_index on table(name);此时结构图如下所示 可以看到存在了两个B树的索引采用了table的name建立了一个新的B树非聚集索引因此如果我们每增加一个索引就会增加表的体积占用磁盘存储空间。 但是请注意非聚集索引的叶子节点存储的不是完整的数据行而只是存在了聚集索引的值主键-属于聚集索引的值 索引字段的数据值。 select * from table where name list1;从上面可以看出首先检索从非聚集索引树开始查询然后找到了聚簇索引然后在从聚集索引上找到整体的完整的数据行。 什么情况不去聚集索引树去查询 如果我们采用了以下的SQL语句与我上面的SQL语句比较属于返回name字段。 select name from table where name list1;如果上图红线所示如果在非聚集索引树上找到了想要的数据如果是这样子属于覆盖所索引机制就不会聚集索引树上去查询其他所有的数据信息。 所以hi到在聚集索引的情况下select col select * 的速度要快很多也是因为覆盖索引提高了很高的性能哦当然不仅于此解析 * 也会消耗很多性能。 create index table_index on table(birthday);如果执行完上述的SQL以后会创建一个新的索引树。 检索方式及就是会同时去检索同时根据条件去检索这两个非聚集索引然后在转到聚集索引上去查询所有的数据行。 注意而且需要考虑的就是不能乱加索引哦因为每加一个就需要多建立一个索引树过多的索引树再维护数据的时候就会越加复杂会导致操作数据性能大大下降。 版权声明 注意特此声明本文取自本人掘金文章https://juejin.cn/post/6956920804168712228未经允许请勿进行侵权私自转载。
http://www.pierceye.com/news/603966/

相关文章:

  • 15年做哪些网站能致富单位做网站有哪些
  • 免费模板建站现在装宽带要多少钱
  • 泉州网站建设培训电商网站 支付宝接口
  • 国外网站素材公益广告设计图片
  • 个人做 网站2019电销助手app
  • 时尚网站网页设计公司想建立一个网站吗
  • 做竞价的网站wordpress还有什么
  • 单位建设网站用途硅胶鞋垫移动网站建设
  • 网站管理员招聘设计平台属性
  • 北票网站建设营销网站如何建设
  • 山东一建建设有限公司官方网站企业电子商务网站设计的原则
  • 江门网站制作培训学校做任务的阅币漫画网站
  • WordPress手机导航登陆代码重庆网站seo教程
  • 宁夏网站设计在哪里网站建设推广小王
  • 电子商务网站建设和维护公司网站可以免费建吗
  • storyset自定义插画网站wordpress 回复下载插件
  • 公司网站代码模板下载山东城建设计院网站
  • 茂港网站建设公司妇科医院网站建设怎么做
  • 怎么自己改自己做的网站的图片策划案网站
  • 养殖p2p网站建设网址大全浏览器下载
  • 建立网站的过程沈阳做网站直播的公司
  • 沈阳市网站设计公司大全电商毕业设计作品
  • 做网站怎么赚钱滑县电桂林两江四湖景区导游词
  • 加快门户网站建设文网站建设费用计入什么科目
  • 网站建设合同英文模板下载湖州做网站的公司
  • 网站内容页设计济南网站优化
  • 简洁中文网站模板下载军事新闻头条最新消息
  • 湘潭网站建设 诚信磐石网络开发app软件的步骤
  • 阿里云网站备案网站建设方案书私有云可以建设网站
  • 网站建设如何增加流量做杂志的网站有哪些