2016-06-14 26 views
1

我使用一個Python驅動程序(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

移動到MySQLdb的(而不是mysql.connector)合作解決所有問題:-)