首页 > 编程知识 正文

数据库索引的优缺点及原理解释,数据库的索引的优缺点

时间:2023-05-04 19:16:54 阅读:190069 作者:464

1. 什么是wxdcc:

wxdcc就像一本书的目录,它是与表或视图关联的磁盘结构,可以加快从表或视图中查找行的速度。 wxdcc包含由表或视图中的一个或多个列生成的密钥。 这些密钥存储在结构(BTree )中,以便SQL可以快速高效地查找与密钥值相关的行。

2. 为什么要建立wxdcc,即wxdcc的优点:

为wxdcc创建列将确保行的唯一性并生成唯一的rowId

通过建立wxdcc可以有效地缩短数据的检索时间

建立wxdcc后,表和表之间的连接速度会更快

在用于排序或分组的字段中添加wxdcc可以加快分组和排序的顺序

3. wxdcc的缺点:

创建和维护wxdcc需要时间成本,该成本随数据量的增加而增大

创建和维护wxdcc需要空间成本,每个wxdcc占用数据库的物理存储空间,数据量越大占用的空间也越大。 (数据表占用数据库的数据空间。 )

每次追加删除表时都需要动态维护wxdcc,由于时间变长,所以追加删除表的效率降低

4. 什么样的表跟列要建立wxdcc:

总的来说,数据量大、查询操作频繁的表制作wxdcc

创建表中字段wxdcc应遵循几个原则。

通常,数据类型越小越好。 数据类型越小,磁盘和内存通常需要的空间越少,处理速度越快。

简单的数据类型更好。 整数数据的处理开销比字符少。 因为字符串更复杂,处理起来更费时间。

避免NULL :必须指定为NOT NULL。 包含空值的列使wxdcc、wxdcc的统计信息和比较运算更为复杂,因此查询难以优化。 必须使用0、特殊值或空字符串而不是空值。

对于非唯一的字段,例如“性别”等大量重复值的字段,增加wxdcc也没有什么意义,因此wxdcc的制作应该选择更多唯一性更高的字段。

表与表的连接多表的联接查询约束的字段必须建立wxdcc

用于排序的字段可以添加wxdcc,用于分组的字段需要根据需要确认是否需要添加wxdcc。

添加多列wxdcc时,对应的多个条件查询可以触发该wxdcc,同时也可以触发wxdcc最左侧列的单条件查询。

如果某些表注定只拥有查询,则不需要添加wxdcc。 因为所有查询都只能进行全量搜索,也就是扫描所有表。

5. wxdcc的原理:

wxdcc的原理大致概括为在空间上改变时间。 在未添加wxdcc时查询数据库,缺省情况下是进行全量搜索或全局扫描,有多少数据就进行多少次查询,找到匹配的数据后放入结果集中,直到所有表扫描完成。 创建wxdcc后,会将创建wxdcc的KEY的值放置在n叉树中。 由于b树的特征适于在光盘等直接存储装置中组织动态查找表,所以每次用wxdcc进行条件检索时,都到树中根据key值直接进行检索。 次数约为log总根数,底数为页存储数,例如100万数据表,在页存储数为100的情况下,有wxdcc的查询次数为3次log1000000100,但全量检索

wxdcc对添加删除更改的影响实际数据更改测试:

一个表有字段a、b、c,同时进行插入10000行记录的测试

没有建设wxdcc时的平均完成时间为2.9秒

在a字段中构建wxdcc后的平均完成时间为6.7秒

在a字段和b字段中构建wxdcc后的平均完成时间为10.3秒

在所有a字段、b字段和c字段中构建wxdcc后,平均完成时间为11.7秒

根据以上的测试结果,wxdcc对数据修正的影响变得明确了

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。