@viktorross

Почему если по запросу в бд что-то найдено, то запрос выполняется быстрее?

Здравствуйте, подскажите, почему по моему запросу в mysql если что-то находится, то обработка занимает пол секунды максимум, а если ничего не найдено то 3 секунды, как это исправить можно?

select class_q.*, class_q.id as adid, date_format(class_q`date_added`,'%d.%m в %H:%i') as date_nice, date_format(class_q.`date_expires`,'%d.%m в %H:%i') as date_expires_nice, UNIX_TIMESTAMP(class_q.`date_added`) as `time_added`, (class_q.date_expires < '2022-01-12 04:32:50' and class_q.date_expires!='0000-00-00 00:00:00' and class_q.active=0) as expired
		, class_slugs.slug 
		
		from class_q
		  
		inner join class_slugs on class_q.id=class_slugs.object_id
		  where class_q.active=1  and ( lower(q.title) REGEXP '[[:<:]]test[[:>:]]'  ) and class_slugs.`type`='q'  order by  `p` desc,  date_added  desc  limit 0, 26;
  • Вопрос задан
  • 141 просмотр
Пригласить эксперта
Ответы на вопрос 2
@galaxy
Скорее всего, потому, что в первом случае читается меньшая часть таблиц, а во втором - все целиком.
Уберите LIMIT - будет примерно одинаково (если результатов много - то и значительно медленнее)
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
патамушта пхпмуадмин

чтобы исправить, надо избавиться от адского говнокода с REGEXP '[[:<:]]test[[:>:]]'
и идиотского lower()
Ответ написан
Ваш ответ на вопрос

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

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