Форум сайта python.su
Всем привет!
Условия:
в таблице базы данных имеется несколько полей, в том числе и бинарное поле (BLOB) размером под несколько килобайт.
в этой таблице примерно под 200 записей.
Задача:
необходимо выполнить выборку всех записей из этой таблицы. (простой select * from table)
Технологическая база:
(1) Linux Ubuntu 10.10, Python 2.6;
(2) Win7, activePython 2.7;
(3) WinXP, Python 2.7;
сервер баз данных: MySQL 5, используются следующие python-библиотеки:
Django-1.2.4 (используется слой абстракции работы с БД, предлагаемый Django, не ORM, а выполнение raw-sql и иже с ним)
MySQLdb 1.2.2
Проблема:
на платформе (1) очень долго выполняет запросы (время выполнения больше минуты) и достаточно тормозно выдает результаты запросов. (проверяется в интерактивном режиме интерпретатора)
выполняется примерно следующий код:
>>>cursor.execute('...') #эта строка выполняется больше, чем за минуту
>>>result = cursor.fetchall() # тоже медленно
cursor.execute('...') #выполняется быстро, за секунду примерно
result = cursor.fetchall() #выполняется долго, больше минуты
Офлайн
mysql у всех свой или один на всех?
1) возможно dns долго ищет, проверить скорость подключения (например выполнить select 1)
Офлайн
MySQL вертится на компе (1), с остальных двух компов подключение к нему идет через локальную сетку. Забавно то, что на третьем компе все ок , работает быстро.
Офлайн
dns работает вполне прилично. проверял запросами на другие таблицы, где записей этак по 10,15 - все ок.
Офлайн
можно попробовать поставить бд на другой хост, потестировать. может что прояснится.
Офлайн