MySQLdb非常慢,结果集很大

2024-04-25 20:28:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我在phpMyAdmin&MySQLdb(python)中执行了以下查询。

SELECT *, (SELECT CONCAT(`id`, '|', `name`, '|', `image_code`)
FROM `model_artist` WHERE `id` = `artist_id`) as artist_data, 
FIND_IN_SET("metallica", `searchable_words`) as find_0
FROM `model_song` HAVING find_0

phpMyAdmin说查询花费了2ms。 我的python代码说,使用MySQLdb查询需要848ms(甚至不获取结果)。

python代码:

self.db = MySQLdb.connect(host="localhost", user="root", passwd="", db="ibeat")
self.cur = self.db.cursor()

millis = lambda: time.time() * 1000

start_time = millis()
self.cur.execute_cmd("""SELECT *, (SELECT CONCAT(`id`, '|', `name`, '|', `image_code`)
FROM `model_artist` WHERE `id` = `artist_id`) as artist_data, 
FIND_IN_SET("metallica", `searchable_words`) as find_0
FROM `model_song` HAVING find_0""")
print millis() - start_time

Tags: namefromselfiddbmodeltimeartist