Форум → Разработка → Базы данных → Уменьшение нагрузки на MySQL
Уменьшение нагрузки на MySQL
Страницы: ← Следующая страница →
-
Нужно написать поиск по базе новостей. Естественно запросы на выборку совпадений идут примерно такие
"SELECT … FROM … WHERE … LIKE %слово%"
вот из-за %слово% нагрузка на MySQL сильно возрастает. EXPLAIN показывает что задеваются все записи в базе (а их несколько тысяч). Подскажите какие-либо варианты уменьшения такой нагрузки. -
21 июля 2008 г. 16:35, спустя 1 минуту 46 секунд
выбирать те поля которые нужны а не все
т.е не SELECT * FROM…. а SELECT id,name,about….. FROM -
21 июля 2008 г. 16:49, спустя 14 минут 8 секунд
megabit, бред!
Kuzya, http://mabp.kiev.ua/content/2008/04/26/search_engine_works_now/
нормально все работает
навесь на БД индексы где надо и будет тебе щастя -
21 июля 2008 г. 16:54, спустя 4 минуты 27 секунд
а скажи что быстрее если 1000 запесей во всех полях
и что будет быстрее SELECT * FROM `table` или SELECT только нужных полей FROM `table` ??? -
21 июля 2008 г. 17:16, спустя 22 минуты 20 секунд
только нужных полей
но ведь для новостей возможне все поля будут нужны -
-
21 июля 2008 г. 17:45, спустя 4 минуты 2 секунды
megabit,
1 не храни в одной таблице стока мусора
2 скорость от этого зависит слабо, даже дело не в скорости поиска, дело в том что когда ты извлекаешь больше инфы ты расходуешь больше памяти и время увеличиваеться засчет доступа к этой памяти. а если у тебя в таблице текс,автор,дата,категори то ты ничего не секономишь если будешь выбирать только текст.
3 если тебе всетаки надо хранить текст на 2 и более языках то используй таблицы с префиксом для каждого языка и отдельную для метаинформации -
-
21 июля 2008 г. 18:13, спустя 24 минуты 45 секунд
megabit, иди учи мат часть
компания mysql разрабатывала свою бд на нескольких милионах записей -
21 июля 2008 г. 21:43, спустя 3 часа 29 минут 44 секунды
выбирать те поля которые нужны а не все
Выбираются только id новостей.навесь на БД индексы где надо и будет тебе щастя
Дело в том что поиск происходит по полям типа TEXT и не "слово%" а "%слово%" - насколько я знаю при этом варианте индексы не задействуются. -
21 июля 2008 г. 22:39, спустя 56 минут 33 секунды
Kuzya, да, при втором варианте не задействуются на сколько я знаю. Может юзать http://www.mysql.ru/docs/man/Fulltext_Search.html ?https://smappi.org/ - платформа по созданию API на все случаи жизни -
22 июля 2008 г. 8:11, спустя 9 часов 32 минуты 1 секунду
Хеее, спасибо, работает как и нужно было =)
старый запрос (с LIKE) выполняется 0.0170
с MATCH - 0,0017 =) -
22 июля 2008 г. 8:49, спустя 37 минут 34 секунды
Kuzya, :)https://smappi.org/ - платформа по созданию API на все случаи жизни -
22 июля 2008 г. 14:58, спустя 6 часов 8 минут 46 секунд
Kuzya, чисто ради принципа сравни результаты, матч должен выдавать меньше -
22 июля 2008 г. 15:12, спустя 13 минут 52 секунды
Kuzya, чисто ради принципа сравни результаты, матч должен выдавать меньше
Две мессаги вверх =)Хеее, спасибо, работает как и нужно было =)
старый запрос (с LIKE) выполняется 0.0170
с MATCH - 0,0017 =)
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!