代码编织梦想

今天我们最后来讲一下设计索引的时候,我们一般要考虑哪些因素。

另外还讲了字段基数的问题以及前缀索引的问题,

那么今天接着来讲剩下的一些索引设计的原则。

首先假设你设计好了一个索引,非常棒,接着你在SQL里这么写:where function(a) = xx,你给你的索引里的字段a套了一个函数,你觉得还能用上索引吗?

明显是不行了。所以尽量不要让你的查询语句里的字段搞什么函数,或者是搞个计算。

现在设计索引的时候需要注意的点都已经讲完了,其实就是好好设计索引,让你的查询语句都能用上索引,同时注意一下字段基数、前缀索引和索引列套函数的问题,尽量让你的查询都能用索引,别因为一些原因用不上索引了。

接着我们来看看索引设计好之后,接着你系统跑起来,有数据插入也有查询的情况,其实查询基本都能走索引一般问题都不会太大的,但是插入就有点讲究了,之前也跟大家说过,其实你插入数据的时候,他肯定会更新索引树。

你插入数据肯定有主键吧,那有主键就得更新聚簇索引树,你插入一条数据肯定会包含索引里各个字段的值吧,那你的联合索引的B+树是不是也要更新?

对了,你不停的增删改数据,就会不停的更新你的索引树。

所以因为你插入的数据值可能根本不是按照顺序来的,很可能会导致索引树里的某个页就会自动分裂,这个页分裂的过程就很耗费时间,因此一般让大家设计索引别太多,建议两三个联合索引就应该覆盖掉你这个表的全部查询了。

否则索引太多必然导致你增删改数据的时候性能很差,因为要更新多个索引树。

,因为主键自增,那么起码你的聚簇索引不会频繁的分裂,主键值都是有序的,就会自然的新增一个页而已,但是如果你用的是UUID,那么也会导致聚簇索引频繁的页分裂。

所以说,以上就是我们本周要讲给大家听的索引设计的所有的原则,希望大家以后在索引设计的时候多想一想上述原则,接下来我们就给大家讲解电商平台的表设计以及索引设计的案例实战。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zht245648124/article/details/129425346

什么是索引?什么条件适合建立索引?什么条件不适合建立索引?_繁华的梦lim的博客-爱代码爱编程_索引的要求

索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。

mysql date建索引有用吗_Mysql索引分析:适合建索引?不适合建索引?【转】-爱代码爱编程

数据库建立索引常用的规则如下: 1、表的主键、外键必须有索引; 2、数据量超过300的表应该有索引; 3、经常与其他表进行连接的表,在连接字段上应该建立索引; 4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引; 5、索引应该建在选择性高的字段上; 6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引; 7

MySQL:设计索引的时候,我们一般需要考虑哪些因素-爱代码爱编程

设计过程 (1)首先,我们针对业务需求建立好一张表的结构后,就知道这个表里有哪些字段,每个字段是什么类型的,会包含哪些数据。 (2)接着设计好表的结构后,接下来要做的,就是要设计表的索引。设计索引的时候,我们要考虑的第一点,就是未来我们对表进行查询的时候,大致会如何来查询 可能一开始我们设计完表的结构后,并不能知道未来会怎么查询表。这时我们完全可以在

数据库优化需要考虑哪些方面?-爱代码爱编程

一个正常运行的系统突然出现性能问题,该从什么地方开始调查? 首先,试着获取用户的反馈信息,什么时候系统开始变慢了?哪些功能出现了卡顿?性能问题出现之前系统作了哪些变更?用户的反馈可以帮助我们快速缩小问题排查的范围,重点关注性能下降前的系统变更。 从数据库层面,MySQL数据库的优化可以从以下几个方面考虑: 表的设计是否合理?字段类型定义是否正确?

设计数据库表时考虑_greetwinter的博客-爱代码爱编程

 1         设计表的时候首先要关注表字段的可扩展性,列入性别这个字段,正常可以用bool类型,true为男,false为女,但是如果是设置性别为隐藏就会有问题,所以尽量避免使用bool类型,可以使用int类型或者枚举类型代替,当然还是基于真是的业务场景  2        需要考虑表的可维护性及可读性,列入主表里有奖品信息的字段,如果奖品有

(六十四)设计索引的时候,我们一般要考虑哪些因素呢?(上)-爱代码爱编程

本周我们将要讲解一下设计索引的时候,我们通常应该考虑哪些因素,给哪些字段建立索引,如何建立索引,建立好索引之后应该如何使用才是最合适的。 可能有的朋友会希望尽快更新后面的内容,但是因为工作的原因的确非常忙,也很少有周末时间

在项目当中如何设计表结构(建模),需要考虑哪些因素_建表需要考虑什么因素-爱代码爱编程

(1)设计表的时候首先要关注表字段的可扩展性,例如性别这个字段,正常可以用bool类型,true为男,false为女,但是如果是未知呢,所以尽量避免用bool类型,可以用int类型或者枚举类型代替; (2)其次需要考虑表的可维护性及可读性,例如主表里有奖品信息的字段,如果奖品有多种类型呢,甚至对应多个奖品的情况,我这边选择独立一张表出来通过字段关联存放奖

mysql有哪些索引_mysql索引有哪几种-爱代码爱编程

索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型 在数据库表中,对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable表: 代码如下:CREATE TABLE mytable(   ID INT NOT NULL,    username VARCHAR(16) NO

设计表结构(建模)的考虑因素_简述mysql设计表要考虑那些因素-爱代码爱编程

        1.首先根据产品设计进行需求文档的编写,对需求文档进行分析后,将分析出的业务需求进行分层次二次分析,再推导出具体的表结构,明确需求之后,进行具体字段的创建         不应该针对整个系统进行数据库设计,而应该根据系统架构中的组件划分,针对每个组件所处理的业务进行组件单元的数据库设计;不同组件间所对应的数据库表之间的关联应尽可能减少,如