Найти - Пользователи
Полная версия: Зависает запрос. Дайте идею, куда смотреть
Начало » Базы данных » Зависает запрос. Дайте идею, куда смотреть
1
ajk-pro
Ниже код. Упрощен до предела от реального, но тоже не работает.
Если в запрос добавить строку:
sql += “ LIMIT 0, 100”
то 100 строк выдает.
Если больше, то зависает. Всего в базе 365 строк.
Совсем недавно это работало.
Как стоит посмотреть?
Ошибку никакую не дает. Просто по времени не проходит.
[Wed Jan 06 11:39:14 2021] [error] [client 5.42.97.165] Script timed out before returning headers: test.py
[Wed Jan 06 11:44:14 2021] [warn] [client 5.42.97.165] Timeout waiting for output from CGI script /home/virtwww/.../http/

 #!/home/virtwww/.../local/bin/python
# -*- coding: utf-8 -*-
import sys
import pymysql
def master() :
	con = pymysql.connect(host = 'mysql00.1gb.ru',
			user = 'user',
			password = 'password',
			db = 'gb',
			charset='utf8',
			cursorclass=pymysql.cursors.DictCursor
			)	# weather
	tablename = 'weather'
	print ("Content-Type: text/html\n")
	print ("<html><head><title>helloword.py</title></head>\n<body>\n")
	print ("<h3>helloword.py</h3>\n")
	print ("con ")
#	список ЭТ с начала года
	actualyear = "2020-01-01"
	with con:
		cur = con.cursor()
		sql = "SELECT `date`, `average` FROM `everydayset` WHERE `date` >= '%s' "
#		sql += " LIMIT 0, 100"
		try:
			print ('<br>sql:\n<br>\n'+ (sql % actualyear).replace('',''))
			cur.execute(sql % actualyear)
			print(f'<br>sql:<br>{sql % actualyear}')
		except Exception as e:
			print(e.message)
			print ('<br>error\n<br>')
		rows = cur.fetchall()
	print(f"<br>rec {len(rows)}")
#	for row in rows:
#		print(row,'<br>\n')
	print ("</body></html>")	##########################################
master()	##################################################

Спасибо!
Александр
FishHook
Напринтайте вот это на экран
sql % actualyear
полученный вывод скопируйте и выполните в консольном клиенте мускуля, работает?
ajk-pro
Оказалось всё просто. Старый драйвер базы mysql версии 5.1.хх
На библиотеке pymysql он давал 100-120 записей нормально, а дальше склеивался.
На библиотеке mysql.connector вышла ошибка “Bad hahdshske”. По этой ошибке и нашлась проблема.

Всё отлично!

Спасибо!
Александр
NikolaiSidorenko
Зачастую так бывает, что глобальная проблема решается довольно простым способом
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB