Задать вопрос
good_br
@good_br
учусь

Как можно оптимизировать данный sql запрос?

Подскажите, как можно оптимизировать данный запрос
use test1;
SELECT `firstname`, 
 `lastname`,
 `age`,
 `town`, 
 `desired_profession`,
 `id`,
 `payment`,
 `pol`,
 `birthmonth`,
 `birthyear`,
 `region`
 
FROM profil WHERE (`desired_profession` REGEXP 'бухгалтер|сметчик|менеджер по кредитам|копирайтер|корректор|турагент|экскурсовод|аналитик|журналист|спортивный|аналитик|переводчик|оператор|логист|диспетчер|провизор|оператор|call-центра|почтальон|курьер|фасовщик|официант|повар|тренер|Модератор|урбанист|вожатый|лингвист|агроном|эколог') BETWEEN 4 AND 4 AND (`age` BETWEEN 20 AND 31) AND (`pol` BETWEEN 3 and 3);


Так же была проблема с загрузкой базы данных, некоторые дампы не грузились, посоветовали выполнить данную команду ALTER TABLE profil DROP PRIMARY KEY; после чего, очень долго проходит запрос и выдает через раз (иногда ни чего не находит)
  • Вопрос задан
  • 55 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
1. Не использовать регулярное выражение.
2. Убрать ненужные BETWEEN x AND x и заменить их на = x
3. После убирания регеха запустить explain и применить на его основе дальнейшие оптимизации.
ALTER TABLE profil DROP PRIMARY KEY

Верните первичный ключ на место.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы