跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 对于多字段的组合搜索条件, mysql 应该怎么设置索引
未分類
22 9 月 2020

对于多字段的组合搜索条件, mysql 应该怎么设置索引

对于多字段的组合搜索条件, mysql 应该怎么设置索引

資深大佬 : dajj 3

假设有一个列表界面, 有 10 个搜索条件, 每个条件对应表的某个字段,都是精确搜索。 但是表的数据有 100 万条。 这种情况下,复合索引无法设置,因为字段组合太多. 那么,有没有通用的解决方案,可以设置索引,让任何条件的搜索都能很快?

大佬有話說 (10)

  • 資深大佬 : v2exblog

    同问

  • 資深大佬 : thinkmore

    你设置过 10 个字段的组合索引吗?

    比如你设置了 a_b_c_d_e 这样的索引,然后你的查询条件是 a = xxx and c=xxx and b = xxx,这样的精确查询,a_b_c_d_e 的索引也是会被使用到的。

  • 資深大佬 : zoharSoul

    @thinkmore
    但是你查 b,e 这样的就用不到了.

  • 資深大佬 : simonlu9

    上 es 吧,性能杠杠的

  • 資深大佬 : justNoBody

    得根据业务来优化吧, 比如 2 说的方法其实是可行的, b tree 索引是可以从左开始匹配的. 所以如果有 10 个搜索条件, 看看能否让条件都变成必填且按顺序进行检索.
    其次我看到主有提到都是精确搜索, 如果对模糊匹配无要求, 是不是考虑给每个字段都增加一个 hash 索引?

    另外我觉得还可以做字段冗余, 把十个字段的值放一个字段上, 然后走分词索引. 或者借助于 ES 做全文搜索来匹配.

  • 資深大佬 : wingpui

    根据数据离散程度选择索引组合字段?

  • 資深大佬 : wangritian

    和需求方沟通,先看看可不可以设置必填查询项,其次问高频使用的查询项

  • 資深大佬 : limuyan44

    让任何条件都很快,绝招,10 个索引完事了。

  • 資深大佬 : littlewing

    100 万条不多,随便玩,加 10 个索引最省事了

  • 資深大佬 : thinkmore

    @zoharSoul 对。如果只是 10 个条件任意某几个查询,这样就不如 10 个索引了。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具