gpt4 book ai didi

mysql - 来自 End of Field 的部分 MySQL 索引

转载 作者:行者123 更新时间:2023-11-29 03:41:30 25 4
gpt4 key购买 nike

部分索引有助于拥有更小的索引,并使 INSERT 更快。

例如

  CREATE TABLE wine (
name VARCHAR(100),
...
INDEX (name(8)));

虽然名字有点像

  Chateau Mouton-Rothschild  Chateau Mouton-Cadet  Chateau Petrus  Chateau Lafite  Chateau Lafleur  ...

在这个(示例)列表中,Chateau 一直出现,MySQL 根据前 8 个字符创建索引...意味着索引中只有一个条目(和搜索Chateau Petrus 将按顺序为所有 Chateau 完成。
(在这种情况下,第一个单词 (Chateau >) 和两个字段中的其余名称是有意义的,但这不是重点)。

有没有办法要求MySQL根据字段的end创建部分索引?

最佳答案

实际上我在此期间找到了一种方法 - 需要一些编程:

只针对name字段

  • 所有 name 条目都反向存储在数据库中
  • 所有 name 搜索都是反向
  • 行中的
  • name 在发送到客户端(用户代理)之前被反转

例如在 PHP 中

  • ...query('INSERT ... name="' .strrev($name) .'"...
  • ...query('SELECT * FROM wine WHERE name="' . strrev($name) . '"');
  • 例如搜索 %MOUTON% 实际上会搜索 %NOTUOM%

有一些反向开销,但与可能的数据库 yield 相比可以忽略不计。

这个问题专门要求纯 MySQL 解决方案,但如果没有,这在任何语言中都是可行的解决方法。如果没有更好的,我会在几天后接受这个答案。

关于mysql - 来自 End of Field 的部分 MySQL 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13331112/

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