假设我已经创建了一个带有字段A,B,C & D的表,其中A & B是主键。现在我想根据字段A,B & c创建一个次要指数。这会消耗更多的空间在MYSQL中,因为我正在创建基于3个字段的索引,或者它将主索引与次要索引结合起来以最小化索引所需的空间。如果我在MYSQL中创建一个新的索引,并且所有主键和其他字段都需要更多空间?
-2
A
回答
0
是的。创建不必要的索引需要更多的空间,但如果性能不够高效,您只需要担心。
0
创建另一个索引会消耗更多空间。 MySQL可以在搜索不同索引中的列时优化索引(称为索引合并优化)。
0
如果A, B
是主键,然后(在MySQL)你有以下考虑:
- A/B中的每一个组合是独一无二的。这些值不是
NULL
。 - 该表由这对值“聚集”(即有序)。
这是很难想象的情况下对A, B, C
指数将是一个很好的想法。毕竟,一个查询如:
select c
from table t
where a = 'a' and b = 'b'
会使主键索引非常优化使用。有一些异常情况下,这样的指数可能有一个边际改善。但是,很可能,您不需要(A, B, C)
上的索引。
相关问题
- 1. 如果我在一个项目中有更多的文件,我需要使所有字段都是静态的?
- 2. sqlite:如果我已经有多列主键,我需要一个索引吗?
- 3. 如果我的复合索引是唯一的,我需要一个主键吗?
- 4. 创建一个没有聚集索引的mysql主键?
- 5. 需要检查其他表,如果在表字段中有1
- 6. 两个字段表(都是int)是否需要一个索引?
- 7. MySql更新所有字段,但一个
- 8. 如何使一个查询中的两个字段的Order by语句和一个字段需要DESC,并且一个字段需要使用Mysql的ASC?
- 9. 需要查找第一个空字段,并更新
- 10. 在MySQL表更新一个字段,如果它是空的
- 11. MySQL - 创建索引需要多长时间?
- 12. mysql - 创建索引需要太多时间?
- 13. 创建日期范围(和其他字段)的覆盖索引
- 14. 具有多个字段的MySQL索引
- 15. 更多洞察在Drupal和其他CMSs如果需要
- 16. 如果我只有一个读写器,并且它不是时间关键的,我需要锁吗?
- 17. 如果其他字段为空,则将字段更新为空或删除行
- 18. 我需要做一个SQL如果然后其他连接表,如果该字段不为空?
- 19. 创建在我的主键字段生成一个选择框
- 20. 我是否需要为每个表定义一个新的主键字段?
- 21. 在db2中的多个表空间中创建索引
- 22. MySQL索引:有多个索引与拥有一个多字段密钥?
- 23. 如何知道在表空间上有多少空间会创建索引需要
- 24. 在没有索引/主键/唯一字段的MySQL中提高查询速度
- 25. 创建一个新字段并更新内容类型(以及所有实现)
- 26. 当我在mysql中更改表字段(添加或更新)后,我真的想要重新创建yii中的所有模型和CRUD工具,并使用gii?
- 27. 如果ID列是主键,是否需要在mySQL表上添加索引?
- 28. 主键索引中的所有值都是?
- 29. 在Elasticsearch中,如何使用自动映射来创建索引并且不分析所有字段?
- 30. Elasticsearch索引可能有一个由多个字段组成的主键吗?
即使它确实将它们结合在一起,也会比没有执行任何操作需要更多空间。另外顺便说一句,它不会结合它们 – Drew
是的,它会占用更多的空间。目前还不清楚为什么你需要额外的索引。另一方面,除了在索引中包含第三列(这是考虑到(A,B)是主键的次要考虑因素之外,我无法想到可以帮助的查询。) –
感谢您的回复..只是想知道是否有任何其他有效的方法来进行搜索优化,这将基于A,B&C或我们只需要在A,B和C上创建二级索引。 –