gpt4 book ai didi

mysql - 表的所​​有列都应该被索引还是不应该是mysql数据库?

转载 作者:可可西里 更新时间:2023-11-01 06:53:25 25 4
gpt4 key购买 nike

我想制作一个有 4 列的表格。一列是主键,另外三列是对其他表列的引用。我想用它来连接这四个表来做一个搜索过滤器。这些连接需要时间。

我在想我应该为这些列建立索引,因为我读到在连接条件中使用的列上添加索引 [使它们运行得更快]。我的问题是,如果表的所有列都被索引,会不会有问题?或者有没有其他方法可以降低搜索过滤器的时间复杂度。提前致谢。

更多提示:表1(主搜索)-1000条首要的关键fk1fk2fk3

表2-800条目pk1..(8-9 列)

表 3-700 条目pk2..(10-12 列)

表2-850条目pk3..(7-8 列)

最佳答案

创建索引需要额外的磁盘空间,索引太多会导致文件系统大小限制引起的问题,必须仔细考虑选择正确的字段进行索引。

由于索引仅用于加快在记录中搜索匹配字段的速度,因此仅用于输出的索引字段在执行插入或删除操作时只会浪费磁盘空间和处理时间。 ,因此应该避免。同样考虑到二进制搜索的性质,数据的基数或唯一性也很重要。在基数为 2 的字段上建立索引会将数据分成两半,而基数为 1,000 的字段将返回大约 1,000 条记录。由于基数如此之低,效率降低为线性排序,如果基数大于记录数的 30%,查询优化器将避免使用索引,从而有效地使索引浪费空间。

最好在列组上添加索引。

关于mysql - 表的所​​有列都应该被索引还是不应该是mysql数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8939996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com