tecdoc查询需要5分钟以上

时间:2018-02-09 18:34:22

标签: mysql sql localhost

我有tecdoc数据库,我想做一个简单的查询,从一个类别的引擎获取所有文章,这个查询将执行最多,但它需要超过5分钟,我正在使用使用InnoDB引擎的mysql:

SELECT
    LA_ART_ID
FROM
               TOF_LINK_GA_STR
    INNER JOIN TOF_LINK_LA_TYP ON LAT_TYP_ID = $engine AND
                              LAT_GA_ID = LGS_GA_ID
    INNER JOIN TOF_LINK_ART ON LA_ID = LAT_LA_ID
WHERE
    LGS_STR_ID <=> $category
ORDER BY
    LA_ART_ID

 $engine = engine code;
 $category = category id;

我在LAT_TYP_ID,LAT_GA_ID,LAT_TYP_ID + LAT_GA_ID,LA_ID,LGS_STR_ID上做了索引,但没有成功,该表有超过150 mil的条目。我做错了什么?

1 个答案:

答案 0 :(得分:0)

我更改了my.ini中的一些设置

innodb_read_io_threads=2
innodb_write_io_threads=4
innodb_log_file_size = 512M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_flush_method=O_DIRECT
innodb_flush_log_at_trx_commit=0
skip-innodb_doublewrite

并且通过解释功能,我将时间从分钟减少到使用正确索引的秒数。