воскресенье, 24 января 2010 г.

Типы таблиц в MySQL и время выполнения запросов

Мне для проекта понадобилось создать одну таблицу, в которой будет около 160 000 записей, и среди них будет вестись поиск. Именно поиск, а не выборка.
Сначала я создала таблицу. А потом нужно было ее оптимизировать. Изначально тип был InnoDB. Но я знаю, что MyISAM таблицы быстрее. Но от шефа поступило задание поэкспериментировать с разными типами таблиц и индексов. Поэтому я придумала 6 запросов, которые будут на мой взгляд наиболее типичными и принялась за дело.
Поиск нужен будет по каким-либо из 3х полей: author(поле типа VARCHAR), name(VARCHAR), description(TEXT).
Вот с таким полями в разных комбинациях я и сделала запросы.
Ниже результат выполнения тестов приведенный в одну таблицу.
1- InnoDB без индексов
2 - MyISAM без индексов
3 - InnoDB, индекс на поле author
4 - MyISAM, индекс на author
5 - MyISAM, индекс на author и name
6 - MyISAM, индекс на author, name и полнотекстовый поиск по description.


 Выводы впринципе ожидаемые. Время выполнения запроса по таблице типа MyISAM заметно меньше.Добавление индексов еще немного уменьшает это время, но уже не так сильно. Полнотекстовый поиск не дает никаких преимуществ.
В результате был сделан выбор на пользу таблицы MyISAM с индексами на полях author, name.

Комментариев нет:

Отправить комментарий

Выскажитесь