特に@roganjoshからの有益なコメントのおかげで、問題はデフォルトのmysqlコネクタがCではなくpythonで記述されているため、非常に遅くなっているようです。解決策は、MySQLdb
を使用することです。 、これはネイティブCコネクタです。
私の特定のセットアップでは、anacondaでpython 3を実行しましたが、MySQLdb
が原因で、これは不可能でした。 Python 2でのみサポートされています。ただし、MySQLdb
の実装があります。 mysqlclient
という名前のPython3の場合 。
この実装を使用すると、テーブル全体を読み取るのにかかる時間は約5分に短縮されます。これは、Rほど速くはありませんが、以前の40程度よりはるかに短い時間です。
私はまだそれをより速くする提案を受け入れています、しかし私の推測では、これはそれが得ようとしているのと同じくらい良いと思います。