我有一个字段“descr”varchar(15000),它将定期保存每行 1000 到 5000 个字符的文本,在每个查询中返回,并且会经常使用 LIKE %search% 进行搜索(数据库是 mysql 5.5 和全文索引不可用)。输入的文本是研究数据,因此不需要唯一性 - 但可搜索是必要的。
该表是带有 utf-8 编码的 innodb。行数不大(30,000)。varchar 上的最大索引大小为 (255),但是当我对列进行搜索时,它正确地返回了一行输入 3000 个字符的行。
我已经阅读了很多关于索引的内容,最相关的是MySQL:Large VARCHAR vs. TEXT?:
- TEXT 与 table 一起存储在 table 之外。
- VARCHAR 是内联存储的,当大小合理且经常检索数据时速度会快得多。
我需要帮助理解:
1. What is the performance impact on retrieval (with 30,000 rows)
going to a text field and
2. Is a varchar index workable for
searching through 3000-5000 character fields? How is the search able
to find strings with data longer than the 255 varchar index anyway?
Or would you advise going with mediumtext?
感谢您的输入。