首页 > 其他分享 >索引的建立原则?什么是索引?如何建立一个好的索引?

索引的建立原则?什么是索引?如何建立一个好的索引?

时间:2023-07-20 10:22:05浏览次数:38  
标签:段值 原则 建立 聚簇 索引 排序 主键 进行

索引的本质其实就是一种排好序的数据结构。

1.必须遵循唯一的索引原则,将其使用的作为索引的字段必须是唯一的,这样涉及的原则跟好处就是,唯一的索引会避免数据库去查询的时候会产生两样性,从而导致索引的查找的速率大大降低。

2.索引的设计要根据where关键字跟order by关键字还有 gruop by关键字后面的字段进行建立。

3.MySQL中会针对主键的索引进行相对应的维护,这个主键索引的数据结构为B+树的结构,这个我们称之为“聚簇索引”,针对于非主键(我们大多数的时候会进行建立联合索引的操作)会针对索引的字段进行依次排序,然后从第一个字段值的比较,第一个字段的值相同就针对下一个字段进行比较,依次往后面进行推。其中联合索引中的字段值都是一样的,那么就根据主键来排序。另外“聚簇索引(主键索引)的B+树中保存的是一行记录的所有信息,非聚簇索引仅仅保存索引字段值和主键字段值”。

4.主键索引主键索引其实较为简单,但是中间有些需要注意的点,当我们要设计主键的时候,必须要对主键设计的时候一定要设计成自增的,而且这里面强调“非常不建议使用UUID作为主键进行使用”,为什么呢?因为UUID为无序的,MySQL在维护“聚簇索引的时候依照的都是主键的顺序进行排序的”,也就是说每页的每一个数据一定是按照主键的从小到大的排序的,而且,在数据与数据之间是通过单向链表进行相互链接的,上一页的最大的主键的值一定是小于下一个数据页的最小的值,数据也跟数据页之间通过双向链表进行相互的链接,进行维护的。

 唯一索引跟主键索引有些许的类似,但是唯一索引不一定是自增的,所以维护唯一索引的成本是大于主键索引的。

5.避免“大字段”的建立索引

换句话说就是“尽量使用数据量小的字段进行作为索引”。

其实可以进行思考的问题,当我们进行使用索引创建的时候,也会进行耗费资源,那么相同的条件下,我们消耗的资源然是越小越好。

标签:段值,原则,建立,聚簇,索引,排序,主键,进行
From: https://www.cnblogs.com/youzhiyuanxiaoapeng/p/17567615.html

相关文章

  • 黑魂 建立被击打动画
    在swordandshield动画包里找到impact2,先选中PlayerHandle的ybot,然后点开Animator的BaseLayer。把impact2的动画拖进去,在AnyState拖出箭头指向impact动画,动画改名为hit,然后在Parameters里添加一个hit的Trigger。在箭头里添加动画条件hit。然后我在PlayerHandle里添加一个......
  • Redis的作用,数据类型,缓存穿透,击穿和雪崩,Redis的索引模式【杭州多测师_王sir】
     一、Redis的作用:1.缓存数据,存在内存当中,效率非常高,比存储型数据快上千倍2.计数器,比如用户访问了多少次,点赞数统计3.可以限制 IP 的访问频率4.可以设置失效时间,可以用来设置优惠券到期时间5.任务队列:比如到货通知,内容更新6.排行榜:redis 的有序集合类型非常适合处理榜单和排序......
  • 2-12 MySQL字段约束-索引-外键
    高版本导出报错问题,是由于高版本对导出文件优化了权限设置,showvariableslike'%secure%';查看权限是NULL就代表禁止导出在配置文件my.cnf[mysqld]下加secure_file_priv=指定导出目录  本节所讲内容:1.  字段修饰符2.  清空表记录3.  索引4.  外键视图......
  • 怎么给hbase的表加二级索引映射到phoenix
    在HBase表中添加二级索引映射到Phoenix在大数据应用中,HBase是一个开源的分布式数据库,而Phoenix是一个基于HBase的SQL层。HBase提供了高性能的读写能力,而Phoenix则使得对HBase表的查询更加简单和直观,类似于传统的关系型数据库。然而,HBase自身并不支持二级索引,这对于一些需要高效查......
  • MySQL创建表,和索引
    MySQL创建表和索引的步骤1.创建表的流程创建表是在MySQL数据库中存储数据的基础操作,以下是创建表的步骤:步骤操作1.连接到MySQL数据库2.创建数据库(可选)3.选择数据库4.创建表5.定义表结构6.设定表的约束和默认值(可选)7.插入数据(可选)下面将......
  • 软件设计七项原则
    一、软件设计七项原则总结归纳设计原则归纳总结开闭原则对扩展开放,对修改关闭里氏替换原则不要破坏继承体系,子类重写方法功能发生改变,不应该影响父类方法的含义依赖倒置原则高层不应该依赖低层,要面向接口编程单一职责原则一个类只干一件事,实现类要单一......
  • python建立一个map
    如何用Python建立一个Map在Python中,我们可以使用字典(dictionary)来实现类似于Map的功能。字典是一种无序的键值对集合,其中每个键都是唯一的,可以通过键来访问对应的值。下面是建立一个Map的整个流程。首先,我们需要创建一个空字典,然后逐步添加键值对。最后,我们可以通过键来访问字典......
  • 表达式树的建立和遍历
    启发:2022CSPJT3表达式树是一棵二叉树,二叉树的遍历分为:1.前序遍历(中左右)2.中序遍历(左中右)3.后序遍历(左右中)中序遍历得到的表达式是人看的,前序和后序得到的方便机器运算,其中后序遍历方便在线性时间内求解,并且运算顺序唯一确定。对于一棵表达式树,其叶节点一定是数字,其他节点一......
  • 15.索引
    定义解释数据都是存在硬盘上的,那查询数据不可避免的需要进行IO操作;索引就是一种数据结构,类似于书的目录。意味着以后再查数据应该先找目录再找数据,而不是用翻页的方式查询数据;索引的分类与运用索引的分类#索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结......
  • Linux下建立NFS共享目录
    https://blog.csdn.net/anluo233/article/details/125921403https://blog.csdn.net/zhangxucumt/article/details/125935901......