Díky užitečným komentářům, zejména od @roganjosh, se zdá, že problém je v tom, že výchozí konektor mysql je napsán v pythonu spíše než v C, což jej velmi zpomaluje. Řešením je použít MySQLdb
, což je nativní konektor C.
V mém konkrétním nastavení, při spuštění pythonu 3 s anakondou, to nebylo možné, protože MySQLdb
je podporován pouze v pythonu 2. Existuje však implementace MySQLdb
pro python 3 pod názvem mysqlclient
.
Při použití této implementace je nyní čas na přečtení celé tabulky asi 5 minut, ne tak rychle jako R, ale mnohem méně než přibližně 40, které trvalo dříve.
Stále jsem otevřený návrhům, které by to urychlily, ale odhaduji, že je to tak dobré, jak jen to bude.