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
vabka
@vabka
Токсичный шарпист
1. Не использовать регулярное выражение.
2. Убрать ненужные BETWEEN x AND x и заменить их на = x
3. После убирания регеха запустить explain и применить на его основе дальнейшие оптимизации.
ALTER TABLE profil DROP PRIMARY KEY

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

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

Войти через центр авторизации
Похожие вопросы