![]() |
MySQL InnoDB - оптимизация LIKE
В общем есть база - около 4гб, ~10млн рядов.
выборка идет что-то типа t1 like 'text' AND t2 like 'text2' AND t3 like 'text3' . если из кеша - то моментально, однако новый поиск - 5 минут... это совсем не вариант. в общем -то опыта с большими базами нету особого... вообще справляется ли мускул с таким объемом? |
Могу сказать, что определённо справляется, но это зависит от многих факторов... От типов полей, от наличия индексов, от того под каким конфигом крутится мускуль... Как пример - возьми гугл... Там кластер из мускульных серверов, и всё работает чики-пуки.
|
Составной индекс по трем полям t1 t2 t3 т е индекс по тем полям по которым поиск... если ты делаешь поиск типа t1 like 'text' AND t2 like 'text2' AND t3 like 'text3' или t1 like 'text%' AND t2 like 'text2%' AND t3 like 'text3%' . А если t1 like '%text%' AND t2 like '%text2%' AND t3 like '%text3%' , тормоз будет по любому, тут надо реализовывать полнотекстный поиск. Использовать системы для индексации типа сфинкс
|
> тут надо реализовывать полнотекстный поиск
Эм.. FULLTEXT поддерживается только на MyISAM вроде |
2 GreenBear может поможет, интересная статья
http://habrahabr.ru/blog/mysql/35837.html |
| Время: 21:06 |