如何优化sql查询以避免在没有php.ini或设置时间限制的情况下执行最长时间



我有2个表:一个有url到我的图像,另一个有url到我优化的图像。我正在从按优化图像url分组的表中进行选择但我一直得到最大致命执行时间即使我将限制为12

SELECT DISTINCT `ojm_pages_articles_photos`.`id_pages_articles_photos`, `ojm_pages_articles_photos`.`url_articles_photo`, `ojm_pages_articles_photos`.`id_ojm_peoples` AS `id_ojm_peoples_uploader` 
FROM `ojm_pages_articles_photos`, `ojm_images_optimized` 
WHERE ( (`ojm_pages_articles_photos`.`url_articles_photo`=`ojm_images_optimized`.`url_image_original` OR `ojm_images_optimized`.`url_image_optimized`='') AND ( `ojm_pages_articles_photos`.`url_articles_photo` LIKE '%jpeg' OR `ojm_pages_articles_photos`.`url_articles_photo` LIKE '%jpg' OR `ojm_pages_articles_photos`.`url_articles_photo` LIKE '%JPEG' OR `ojm_pages_articles_photos`.`url_articles_photo` LIKE '%JPG' OR `ojm_pages_articles_photos`.`url_articles_photo` LIKE '%jpe' OR `ojm_pages_articles_photos`.`url_articles_photo` LIKE '%png' OR `ojm_pages_articles_photos`.`url_articles_photo` LIKE '%PNG' OR `ojm_pages_articles_photos`.`url_articles_photo` LIKE '%bmp' ) ) 
GROUP BY `ojm_images_optimized`.`url_image_optimized`, `ojm_pages_articles_photos`.`url_articles_photo`
ORDER BY `ojm_pages_articles_photos`.`id_pages_articles_photos` DESC, `ojm_images_optimized`.`optimized_is_smaller`='Oui' 
LIMIT 0,12

我不想增加最大执行时间(我知道如何在php中这样做,但我不想这样做)。

如何优化这个sql查询,以避免在没有php.ini或设置时间限制的情况下执行最大时间?我只选了12条,老实说,我不明白12条的最长执行时间。

where子句中有很多通配符。服务器必须检查这些列的每一行,以查看哪些是匹配的,并且必须在排序或限制它们之前这样做。

如果所有这些通配符都是必需的,那么将需要为这些列添加索引以加快速度。

最新更新