gpt4 book ai didi

mysql - 优化 MySql 表中的索引

转载 作者:太空宇宙 更新时间:2023-11-03 11:34:00 24 4
gpt4 key购买 nike

我在 mysql 数据库中有一个表,很快就会有大量记录,所以我想添加一些索引来提高我的查询性能。我的查询有 4 个字段的变体,( template_id (int), data(text), state(int), hub_id(int) )。这 4 个字段中没有一个不是我的表的主键字段。我对该表的查询中有这 3 种类型的 where 子句:

where state = XXX
where template_id = XXX AND state = YYYY
where hub_id = XXX AND data = 'YYYY' AND template_id = ZZZZ

为这个表创建索引的最佳方法是什么,该表有 4 个列,其中子句的不同组合?我应该为 int 字段创建 3 个单独的索引,为数据(文本)字段创建一个全文吗?我假设最佳做法是为每个 where 子句组合创建一个索引,但在那种情况下,我应该如何处理作为文本字段的数据字段,将索引放在文本字段上好吗?

谢谢你的建议

最佳答案

查看您的典型情况,您应该只使用 3 个索引,最后 2 个作为复合索引

 idx1(state)

idx2(template_id, state)

idx3(hub_id,data, template_id) or idx3(hub_id, template_id, data)

取决于数据的基数和template_id

以这种方式,3 个索引不会相互干扰,并且应该由 sql 优化器正确使用。

请记住,当 sql 优化器不选择您认为更好的索引时,您可以使用 FORCE 或 USE 强制选择

关于mysql - 优化 MySql 表中的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47476919/

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