长字符串的 MySQL 索引

标签 mysql

我有 MySQL InnoDb 表,我想在其中存储长字符串(限制为 20k 符号)。有没有办法为这个字段创建索引?

最佳答案

您可以将字段的 MD5 放入另一个字段并对其进行索引。然后当你进行搜索时,你会匹配未索引的完整字段和已索引的 md5 字段。

SELECT *
FROM large_field = "hello world hello world ..."
AND  large_field_md5 = md5("hello world hello world ...")

large_field_md5 是索引,因此我们直接转到匹配的记录。如果有重复的 md5,可能需要测试 2 条记录。

关于长字符串的 MySQL 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6486724/

相关文章:

MySQL 在特定日期按小时获取值

mysql - 如何获取每个类别的前 n 条记录

mysql - mysql存储过程中的参数

php - 如何将 mysqli 查询转换为 WordPress 中的 $wpdb?

mysql - 查询获取两个表mysql中的最大值

php - 选择大于当前日期的日期

MySQL ORDER BY 似乎按十六进制排序而不是按字母顺序排序

mysql - 用于搜索和替换(需要更新)整个数据库的 SQL 查询(如果与 phpMyAdmin/MySQL - WordPress 站点中的字符串匹配)

php - 更改表排序规则 LIKE 子句不会返回任何内容

php - 如何复制MySQL字段?