Poor fulltext index performance in conjunction with order by.
Hello All, I'm looking for a way to improve a query using fulltext index and so far, couldn't find any good solution. I have an alert table (described below) with around 6 million records and a full-text index on these two columns (ALERT_COMMENT, ALERT_SOURCE). I'd like to query the latest 30 received alerts based on a string content. Currently, I am proceeding with the following query: SELECT * FROM Alert WHERE MATCH(ALERT_COMMENT, ALERT_SOURCE) AGAINST ('string content' IN BOOLEAN MODE) > 0.0 ORDER BY ALERT_ID DESC LIMIT 30; However, this query is taking minutes to retrieve the data, likely due to poor performance of the full-text index in conjunction with the ORDER BY statement. When I remove the 'ORDER BY' statement, the result is returned in seconds. Do you have any suggestions for improving the retrieval time for this query? Below is the table structure: CREATE TABLE `Alert` ( `ALERT_ID` int(11) NOT NULL AUTO_INCREMENT, `SITE_ID` varchar(50) NOT NULL, `ALERT_LEVEL` int(4) NOT NULL, `RECEIVED_TIME` datetime NOT NULL, `OCCURRED_TIME` datetime NOT NULL, `ALERT_SOURCE` varchar(50) NOT NULL, `ALERT_COMMENT` varchar(1024) NOT NULL, PRIMARY KEY (`ALERT_ID`), FULLTEXT KEY `IX_ALERT_COMMENT_SOURCE_CODE` (`ALERT_COMMENT`, `ALERT_SOURCE`) ); Thanks in Advance Gava
participants (1)
-
gava100@gmail.com