我需要帮助优化 Mysql 查询:
我有两张桌子:
jos_mp3_file(id,path,version_timestamp)
jos_mp3_licenses(id,s3_url,cdate)
每个大约有 20,000 条记录。
“jos_mp3_file.path ”列中的记录,可能在文件前面有一个文件夹,如下所示:'folder/file1.mp3'。
我需要做的是找到所有记录,其中:1. “jos_mp3_file.path”与“ jos_mp3_licenses.mp3_url ”具有相同的文件名(以某种方式通过文件夹部分)2. “jos_mp3_file.version_timestamp”大于jos_mp3_licenses。 cdate(都是日期时间数据类型)
到目前为止,我有这个查询,但由于某种原因,它需要很长时间才能运行(5-10 分钟)
SELECT jos_mp3_licenses.s3_url, jos_mp3_licenses.cdate, jos_mp3_file.path,jos_mp3_file.version_timestamp
FROM jos_mp3_file, jos_mp3_licenses
WHERE SUBSTRING_INDEX( jos_mp3_file.path , '/', -1 ) = jos_mp3_licenses.mp3_url
AND unix_timestamp(jos_mp3_file.version_timestamp) > unix_timestamp(jos_mp3_licenses.cdate)
谢谢 !