- Проекты 7
- Оценка -
- Рейтинг 204
Бюджет: 2500 RUB Срок: 3 дня
Добрый день, имею опыт в оптимизации БД и запросов, с удовольствием помогу. В моей практике был случай, когда таблицы содержали не менее 300к записей и создавали настолько большую нагрузку, что провайдер грозил отказом в сотрудничестве. В результате сейчас всё работает без проблем. Ваш случай мне напоминает тот. Для начала мне нужно больше информации по структуре БД и по запросу. Жду ваших сообщений.
Ставки пока отсутствуют
-
Андрей Местный 13 сентября 2019Вы используете LIKE '%".$teg."%' то есть ищите подстроку в значении поля, соответственно перебираете каждый раз все 100.000 записей, вам нужно отказаться от этой практики. SQL запрос правильный, но вы неправильно ставите задачу своему SQL серверу, подумайте как не ставить знак процента впереди искомой подстроки.
-
Андрей Местный 13 сентября 2019Нет, вам нужно отказаться от поиска подстроки в поле, можно искать слово, если использовать полнотекстовый поиск, а поиск подстроки всегда будет очень медленным на больших базах.
-
Андрей Местный 13 сентября 2019Даже если уберете процент вначале запроса Like оставив его только в конце то уже поиск будет идти по индексу и будет быстрым.
-
Иван Коленов
13 сентября 2019
в поле есть текст "Мото Ауто Форум Деньги Золото"
Как найти по другому все записи где есть слово Форум между 100 000 записей не используя %Форум%?
-
Андрей Местный 13 сентября 2019Если вам нужно полное слово форум, то через полнотекстовый поиск, а если вы хотите искать подстроку например фор** или **орум то ничего вам не поможет, кроме медленного выполнения запроса.
-
Андрей Местный 13 сентября 2019Вернее если вы издадите запрос like '%фор% то запрос будет выполняться медленно, а если like 'фор% то результат будет мгновенным.
-
Иван Коленов
13 сентября 2019
"Мото Ауто Форум Деньги Золото"
не сможет найти поля со словом Форум% так как слово между другими словами
-
Андрей Местный 13 сентября 2019Тогда вам нужно подумать как построить программу так, чтобы этого не было, полное слово ФОРУМ вы можете искать через полнотекстовый поиск, а подстроку *ОРУМ никак только загружая на 100 % процессор и память.
-
Андрей Местный 13 сентября 2019Если вы хотите в перечне осмысленных слов "Мото Ауто Форум Деньги Золото" найти слово Форум и создадите полнотекстовый индекс по этому полю, то тогда MySQL найдет слово Форум мгновенно. Но слово должно быть осмысленным, чтобы MySQL понял что вы ищите именно Форум. Он так же найдет и слово Форумы, Форума, Форумов, Форума и т.д. Но слово ОРУМ полнотекстовый поиск не найдет, а like '%ОРУМ%' найдет.
-
Олексій К. 13 сентября 2019Если Вы хотите использовать полнотекстовый поиск, Вам стоит отказаться от поиска по MySQL) такими запросами и по такой базе))).
решение(если VPS): делать связку ЦМС - ...
-
Андрей Местный 13 сентября 2019Вам нужно использовать WHERE MATCH(`cosmos`) AGAINST('форум'), а не Like
-
Free Web 13 сентября 2019Попробуйте еще регулярными выражениями - может будет быстрее
Пример: SELECT name FROM metal WHERE name REGEXP 'Форум';
-
Андрей Местный 13 сентября 2019Вам в каком виде вообще помощь нужна ? В виде совета, просмотра ваших SQL запросов или реальной перетряски всего вашего проекта, через SSH доступ к вашему серверу и пересмотр всей концепции поиска.
-
Иван Коленов
13 сентября 2019
на стороне сервера я смогу все сам настроить, мне нужно оптимизировать запрос LIKE или заменить его...
-
Андрей Местный 13 сентября 2019Найдите доку как использовать полнотекстовый поиск в MySQL если MySQL слишком древний, то вам придется его обновить до версии поддерживающей полнотекстовый поиск. Если уж ничего не поможет, то пишите в личку договоримся.
-
Роман Безфамильный 14 сентября 2019Напишите в личку, скину вам сайт, где я в почти 2-х млн. сделал быстрый поиск внутри текста.
Актуальные фриланс-проекты в категории PHP
-
6000 UAH
Срочный проект — Senior WordPress/WooCommerce/Stripe разработчик для завершения настройки НДС и
CMS 31 ставка 2 августа
-
Не указан
Разработчик WordPress: Обновление API Greenhouse Harvest с версии 2 на версию 3
Создание сайта под ключ 58 ставок 30 июля
-
7691 UAH
Легкое приложение
Десктопные приложения 66 ставок 28 июля
-
4102 UAH
Плагин Mondial Relay WooCommerce
28 ставок 28 июля
-
4400 UAH
Нужен Специалист (Google Ads) для бухгалтерской компании (оплата за лиды / результаты)
10 ставок 26 июля