Я использую профилировщик времени для оптимизации моего скрипта Python. Оказывается, что MySQL запросы занимают много времени в моих скриптах Python. Всего есть только 19 запросов. По данным cProfile, эти 19 запросов mysql занимают более 7,44 с.
Ниже приводится полный сценарий сценария с запросом mysql и соответствующим временем запроса в секундах.
$ python -m cProfile -s time myscript.py
MYSQL Queries
SELECT column FROM table WHERE foreign_key = 1 AND somecolumn='val1'
0.378623008728
SELECT column FROM table WHERE foreign_key = 1 AND somecolumn='val2'
0.379124879837
...
SELECT column FROM table WHERE foreign_key = 1 AND somecolumn='val19'
0.377450942993
60122 function calls (59599 primitive calls) in 7.634 CPU seconds
Ordered by: internal time
ncalls tottime percall cumtime percall filename:lineno(function)
20 7.440 0.372 7.440 0.372 {method 'query' of '_mysql.connection' objects}
22 0.025 0.001 0.025 0.001 {method 'execute' of 'psycopg2._psycopg.cursor' objects}
2 0.008 0.004 0.008 0.004 {method 'commit' of 'psycopg2._psycopg.connection' objects}
1299 0.007 0.000 0.011 0.000 posixpath.py:59(join)
982 0.007 0.000 0.007 0.000 {posix.lstat}
429 0.006 0.000 0.010 0.000 text_file.py:162(readline)
1 0.006 0.006 0.006 0.006 {psycopg2._psycopg.connect}
1 0.006 0.006 0.025 0.025 __init__.py:18(<module>)
2 0.004 0.002 0.007 0.004 connections.py:62(__init__)
110 0.004 0.000 0.027 0.000 posixpath.py:344(realpath)
20 0.004 0.000 0.004 0.000 {method 'store_result' of '_mysql.connection' objects}
...
Может кто-нибудь помочь мне выяснить причину?
Спасибо