0

我有一个带全文搜索的查询,需要 5 - 10 秒。key_buffer_size 已经是 16GB。表有1500 万条记录,并在字段上具有复合全文索引:类别和公司。

表大小:
数据长度 - 0.9GB
索引长度- 1.1GB

    SELECT c.id FROM basetable c 
    WHERE MATCH(c.categories, c.company) 
    AGAINST('+keyword1 +keyword2 +keyword3' IN BOOLEAN MODE)
    LIMIT 100

查询结果
只有 88 行

查询状态
Key_read_requests - 4414336
Key_reads - 1029
Key_write_requests - 12
Key_writes - 2
Handler_read_next - 89

Mysql 全局变量
key_buffer_size - 16GB
key_cache_age_threshold - 300
key_cache_block_size - 1024
key_cache_division_limit - 100
max_heap_table_size - 6gb
tmp_table_size - 6gb

服务器:
双 XEONS CPU
32GB RAM
HD 15kRPM。

请注意,并非所有查询都很慢。有些不到一秒;这取决于全文搜索中使用的关键字。

您对如何改善这一点有任何想法吗?

4

0 回答 0