mysql table 有 2 个全文索引和 1 个普通索引是不是设计不好?
Is it bad design to have 2 full text indexes and one normal index for mysql table?
我有一个产品 table,我在其中创建了以下索引:
product_category 列全文索引:我希望能够更快地按类别检索产品。
字段值示例:["Clothing >> Women's Clothing >> Women_Tops >> Women_TShirtsTops >> Candies by Pantaloons Shirts"]
标题 full-text 索引:允许用户按标题搜索产品
价格索引正常:允许按价格更快排序
主索引自动生成于product_id
一切正常,但我只是想获得建议,将如此多的索引集中在一个设计中是不是一个糟糕的设计选择table?随着 table 大小增长到 500 万,是否会因为有多个索引而导致任何性能问题?
当然,有多个索引是可以的。但是,除了极少数情况外,一个 SELECT
.
只会使用一个索引
如果合适,将首先使用 FT 索引。如果您有任何其他索引,这基本上无关紧要。
如果查询使用的是FT索引,则不会使用价格索引。
如果有额外的索引,INSERT
会有一些额外的开销。但通常索引是值得拥有的。也就是说,不要因为 Insert activity 的 table 大小就避免添加索引。避免添加不会被使用的索引。
如果我们能看到您查询的样本,我们或许能够提供更多详细信息。
我使用 MySQL 的慢日志来识别对系统影响最大的查询。但是没有工具会告诉您如何加快慢速查询的速度。
我有一个产品 table,我在其中创建了以下索引:
product_category 列全文索引:我希望能够更快地按类别检索产品。 字段值示例:["Clothing >> Women's Clothing >> Women_Tops >> Women_TShirtsTops >> Candies by Pantaloons Shirts"]
标题 full-text 索引:允许用户按标题搜索产品
价格索引正常:允许按价格更快排序
主索引自动生成于product_id
一切正常,但我只是想获得建议,将如此多的索引集中在一个设计中是不是一个糟糕的设计选择table?随着 table 大小增长到 500 万,是否会因为有多个索引而导致任何性能问题?
当然,有多个索引是可以的。但是,除了极少数情况外,一个 SELECT
.
如果合适,将首先使用 FT 索引。如果您有任何其他索引,这基本上无关紧要。
如果查询使用的是FT索引,则不会使用价格索引。
如果有额外的索引,INSERT
会有一些额外的开销。但通常索引是值得拥有的。也就是说,不要因为 Insert activity 的 table 大小就避免添加索引。避免添加不会被使用的索引。
如果我们能看到您查询的样本,我们或许能够提供更多详细信息。
我使用 MySQL 的慢日志来识别对系统影响最大的查询。但是没有工具会告诉您如何加快慢速查询的速度。