表有大约100万个唯一关键字utf_unicode性能

时间:2011-10-07 21:59:40

标签: php mysql performance

我有一个表格,其中包含以utf_unicode格式存储的所有语言中的100万个唯一关键字。最近我一直遇到选择问题,每次选择最多需要1秒钟。这确实导致查询速度减慢。

关键字表格的结构为(keyword_idkeyworddirty) - > keyword_id是主键,keyword具有唯一索引,dirty具有简单索引。 keyword的{​​{1}}类型最多包含20个字符。 varchar是一个布尔值。

在where字段中选择“keyword”时会遇到问题。我怎样才能加速这张桌子。

我在PHP中使用MySQL。

样本查询

dirty

2 个答案:

答案 0 :(得分:1)

根据我的经验,您是否考虑过使用内存表而不是myisam比myisam快10倍。如果服务器崩溃,你只需要另一个表来重建。而且使用char 20代替varchar。这将使表成为固定格式,并且mysql将能够更快地找到它的结果。

答案 1 :(得分:0)

如果您有唯一的关键字,并且没有进行任何相似性/“喜欢”查询,则可以创建一个哈希索引。这样可以保证单行查找。

此方法的次要缺点是,创建散列索引可能比常规索引(基于btree)占用更多空间。

推荐人:

  1. https://dev.mysql.com/doc/refman/8.0/en/index-btree-hash.html
  2. https://dev.mysql.com/doc/refman/8.0/en/create-index.html