Как явно настроить движок базы данных при использовании to_sql () в пандах - PullRequest
0 голосов
/ 31 мая 2018

Как я могу исправить оператор sql в функции pandas to_sql (), чтобы во вновь созданной таблице использовался механизм хранения MYISAM?

Мне нужен MYISAM из-за очень большого количества столбцов.В настоящее время это вызывает проблемы со стандартным механизмом базы данных INNODB (слишком большой размер строки (> 8126).

. Мне известно, что при создании таблицы можно явно задать механизм базы данных в операторе mysql. Возможно, это возможнопропатчить sql, сгенерированный функцией to_sql ()?

Чтобы явно указать, что вам нужна таблица MyISAM, укажите это с помощью опции таблицы ENGINE: CREATE TABLE t (i INT) ENGINE =MYISAM;

Так я сейчас создаю таблицу

df.to_sql(con=engine, name="generated_" + reportConfiguration.shortName + "_" + reportConfiguration.marketplace, if_exists='replace',index=False)

1 Ответ

0 голосов
/ 31 мая 2018

Насколько я знаю, механизм хранения из MySQL не может быть установлен с использованием df.to_sql или engine = create_engine('mysql+pymy....://x@y/z').

Механизм хранения MySQL можно добавить в структуру таблицы после его создания.
executing и команду alter table через соединение engine, вы можете изменить механизм хранения таблицы.

Пример :

with engine.begin() as conn:     
      conn.execute("ALTER TABLE table_name ENGINE = MYISAM")

Документация :

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...