Просмотр полной версии : MySQL InnoDB - оптимизация LIKE
GreenBear
21.05.2008, 19:54
В общем есть база - около 4гб, ~10млн рядов.
выборка идет что-то типа t1 like 'text' AND t2 like 'text2' AND t3 like 'text3'
. если из кеша - то моментально, однако новый поиск - 5 минут... это совсем не вариант.
в общем -то опыта с большими базами нету особого... вообще справляется ли мускул с таким объемом?
groundhog
21.05.2008, 20:07
Могу сказать, что определённо справляется, но это зависит от многих факторов... От типов полей, от наличия индексов, от того под каким конфигом крутится мускуль... Как пример - возьми гугл... Там кластер из мускульных серверов, и всё работает чики-пуки.
Егорыч+++
21.05.2008, 22:50
Составной индекс по трем полям 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
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot