Соединитель MySQL python 35 Ресурс временно недоступен с большими запросами?

Я пытаюсь использовать соединитель MySQL в качестве альтернативы pymysql, поскольку он поддерживает несколько операторов в одном запросе для некоторых обновлений, которые мне нужно сделать ( вот мой другой вопрос, связанный с этим ), однако он не подходит для моего другого варианта использования отправки по очень большие выборки.

У меня есть динамически сгенерированный оператор Select, который извлекает все строки, соответствующие любому из указанных значений; например, Select * from table where col_a in (val_1, val_2.... val_350,000)

Я продолжаю получать ту же ошибку для своих операторов select:

 Exception in thread Thread-1: Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/mysql/connector/network.py", line 212, in send_compressed self.sock.sendall(zip_packet) BlockingIOError: [Errno 35] Resource temporarily unavailable During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/threading.py", line 921, in _bootstrap_inner self.run() File "/Users/maldeiri/raw_data_processing/sql_retriever.py", line 22, in run self.mysql_cursor.execute(self.sql_statement) File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/mysql/connector/cursor.py", line 515, in execute self._handle_result(self._connection.cmd_query(stmt)) File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/mysql/connector/connection.py", line 488, in cmd_query result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query)) File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/mysql/connector/connection.py", line 261, in _send_cmd packet_number) File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/mysql/connector/network.py", line 215, in send_compressed errno=2055, values=(self.get_address(), _strioerror(err))) mysql.connector.errors.OperationalError: 2055: Lost connection to MySQL server at 'database_end_point:3306', system error: 35 Resource temporarily unavailable 

Это происходит независимо от того, есть ли у меня сжатие = True или False. Я также не думаю, что это проблема на стороне сервера, поскольку я упомянул, что те же самые операторы Select, похоже, работают с pymysql, работающими с тем же кодом и машиной.

Любые идеи, как я могу обойти это?

One Solution collect form web for “Соединитель MySQL python 35 Ресурс временно недоступен с большими запросами?”

Не создавайте этот ужасный IN(...) , вместо этого бросайте значения в таблицу, по одной на строку.

Затем сделайте JOIN для реальной таблицы, чтобы получить нужные вам строки. (Убедитесь, что col_a индексируется в реальной таблице, а не индексируйте его в дополнительной таблице.)

Если в огромном списке могут быть дубликаты, вы должны сначала сначала удалить список. Посмотрите, может ли Python сделать это достаточно легко. Если нет, вы можете иметь один столбец PRIMARY KEY и делать INSERT IGNORE мере их вставки. Или,

 CREATE TABLE t (val) ENGINE=MyISAM; INSERT or LOAD DATA ... (no dedupping) SELECT rt.* FROM real_table JOIN ( SELECT DISTINCT val FROM t ) ON rt.val = t.val; 
  • Почему функция 'insert' не добавляет строки, используя MySQLdb?
  • Предупреждения Python и MySQLdb
  • Python MySQLdb возвращает datetime.date и decimal
  • получить необработанное десятичное значение из запроса mysqldb
  • Ошибка mysql.connector во время «except» при компиляции с помощью pyinstaller?
  • MySQLdb для Python не может найти libmysqlclient.dylib с Homebrewed MySQL
  • База данных не обновляется автоматически с помощью MySQL и Python
  • python MySQLDb вставить с готовыми заявлениями
  • MySQL-Python & Django 1.5.0: нет модуля с именем mysql.base error
  • Вставка нескольких объектов словаря в базу данных MySQL с использованием python и MySQLdb
  • pip install MySQL-python не работает на ubuntu 14.04, ошибка: команда «x86_64-linux-gnu-gcc» не удалась с статусом выхода 1
  • Python - лучший язык программирования в мире.