Я ограничиваю размер фрагмента 10, и в таблице более 10 записей.
Панды читают всю таблицу в блоке, и каждый блок имеет 10 записей или меньше.Когда вы указали chunksize
, что pandas.read_sql_table
вернет генератор.
data = pd.read_sql_table(table_name, engine, chunksize=10)
[data.__next__() for _ in range(1)] # only read one chunk, 10 records or less
Я ждал более 5 минут, прежде чем завершить сценарий.
read_sql_table
будетпрочитайте всю таблицу, все записи.Это означает, что если вы хотите использовать read_sql_table
очень большую таблицу, а затем выбрать специальный столбец, вы потратите гораздо больше времени и памяти, по сравнению с завершением в mysql. Почему вы тратите так много времени, что связано с тем, что вы делали с помощью своего кода , если вы выполняете только то, что показывает ваш пример кода, оно должно быть быстрым (я пытался прочитать 0.5Mзаписи, но это стоит всего несколько секунд)
Почему это занимает так много времени или даже не решается?
Если вам не нужны все записи, используйтеread_sql
или read_sql_query
для запуска запросов.Потому что MySQL работает очень хорошо.