2016-06-14 2 views
1

Я использую драйвер питона (mysql.connector) и выполните следующие действия:призыв к MySQL cursor.execute() (драйвер Python) висит

_db_config = { 'user': 'root', 'password': '1111111', 'host': '10.20.30.40', 'database': 'ddb' }

  • _connection = mysql.connector.connect(**_db_config) # connect to a remote server
  • _cursor = _connection.cursor(buffered=True)
  • _cursor.execute("""SELECT * FROM database LIMIT 1;""")

в некоторых случаях, вызов _cursor.execute() висит без исключения

Кстати, при подключении к локальному серверу MySQL, кажется, будет хорошо

+1

удалить ';' из третьей строки –

+0

@BillalBEGUERADJ Сначала я подумал, что он решает мою проблему здесь, но, к сожалению, это не так. Я все еще получаю эти зависания, и тайм-аут также не решает его :-( –

+0

SQL-запрос сам по себе не является тем, что потребляет это время ... Вы наблюдаете то же самое, когда вы запускаете запрос непосредственно из командной строки? –

ответ

0

В результате может зависнуть из-за большие базы данных или не оптимизированные запросы. вы можете попробовать следующие вещи

  • оптимизировать ваш запрос
  • использовать лучший драйвер разъема я обычно использую python3.x и для этого я либо использовать «pymysql» или «pypyodbc» , которые являются новыми и оптимизированными драйверами

вот после работы с "pymysql" Gives small idea to with with mysql and python3

+0

Я сомневаюсь, что запрос слишком велик, потому что OP использует LIMIT 1 и просит дикую карту. Это не должно быть слишком правильным? – jwillis0720

-1

Moving в MySQLdb (вместо mysql.connector) решить все вопросы :-)

Смежные вопросы