Table type: MyISAM
Rows: 120k
Data Length: 30MB
Index Length: 40MB
my.ini, MySQL 5.6.2 ОкнаОптимизация запросов, что еще я могу сделать?
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 16M
Windows Server 2012, 12GB RAM, SSD 400MB/s
1 медленные запросы:
SELECT article_id, title, author, content, pdate, MATCH(author, title, content)
AGAINST('Search Keyword') AS score FROM articles ORDER BY score DESC LIMIT 10;
Исполнительного этот запрос занимает 352ms использует индекс. После профилирования это показывает, что большую часть времени тратится на создание индекса сортировки. (Полная деталь: http://pastebin.com/raw/jT58DCN5)
-Быстрее запросы:
SELECT article_id, title, author, content, pdate, MATCH(author, title, content)
AGAINST('Search Keyword') AS score FROM articles LIMIT 10;
Выполнение этого запроса принимает 23МС и делает полное сканирование таблицы, я не хотел полное сканирования таблицы.
Проблема/вопрос: вопрос № 1 - это тот, который мне нужно использовать, поскольку сортировка очень важна.
Есть ли что-нибудь, что я могу сделать для ускорения этого запроса/повторного написания его и достижения того же результата (как №1)?
Цените любой вход и помощь.
Ну, контент невелик, varchar 255 является максимальной длиной для поля содержимого, и это самый большой. У меня есть индексы по автору, заголовку, содержимому, все типа varchar, и ослабевают в соответствии с требованиями ПОЛНОГО ТЕКСТА ПОИСКА. Я не говорю, что я не доволен тем, как дела обстоят сейчас, но сайт растет, и я просто хочу быть уверенным, что сделал то, что можно сделать с этими ресурсами, прежде чем инвестировать в что-либо еще. У меня есть некоторые другие варианты, которые могут быть более эффективными для оптимизации, а не для этого запроса. Любой другой вход, который может помочь, очень ценится. –