我有一个表格,其中包含以utf_unicode
格式存储的所有语言中的100万个唯一关键字。最近我一直遇到选择问题,每次选择最多需要1秒钟。这确实导致查询速度减慢。
关键字表格的结构为(keyword_id
,keyword
,dirty
) - > keyword_id
是主键,keyword
具有唯一索引,dirty
具有简单索引。 keyword
的{{1}}类型最多包含20个字符。 varchar
是一个布尔值。
在where字段中选择“keyword”时会遇到问题。我怎样才能加速这张桌子。
我在PHP中使用MySQL。
样本查询
dirty
答案 0 :(得分:1)
根据我的经验,您是否考虑过使用内存表而不是myisam比myisam快10倍。如果服务器崩溃,你只需要另一个表来重建。而且使用char 20代替varchar。这将使表成为固定格式,并且mysql将能够更快地找到它的结果。
答案 1 :(得分:0)
如果您有唯一的关键字,并且没有进行任何相似性/“喜欢”查询,则可以创建一个哈希索引。这样可以保证单行查找。
此方法的次要缺点是,创建散列索引可能比常规索引(基于btree)占用更多空间。
推荐人: