Сразу предупреждают, что я плохо знаком с mysql, но мне понадобилось его использовать.
Я создал такую таблицу:
CREATE TABLE stack
(
id INT NOT NULL AUTO_INCREMENT,
infa VARCHAR(64) UNIQUE NOT NULL,
view BOOL,
PRIMARY KEY (id)
);
Всего есть три запроса:
взять для обработки:
db.query('select infa from stack where view=0 limit 1')
пометить как взятое:
db.query(«update stack set view=1 where infa='%s'» % infa)
и вставить полученные данные запросом:
insert ignore into stack (infa, view) values ('foo', 0),('bar', 0) итд.
Я знаю, что запросы уязвимы, но тут данным можно доверять.
Проблема в том, что когда работают 10 экземпляров скрипта загрузка процессора mysql'ем составляет уже 60-70%, а мне нужно 20-30 экземпляров, дабы они обеспечивали полное использование интернет канала. Сейчас в базе 4.5 млн записей.
Все это происходит на Debian Squeeze, Pentium-4 2.6, 1024 ram. Сам скрипт на питоне с использованием mysql-python.
Собственно вопрос - что, где подкрутить дабы исправить ситуацию?
И да, я включал и смотрел mysql-slow.log и ничего там не обнаружил.
Форум —
Development

