Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Повышение производительности


Автор: Anton Vatchenko 4.9.2007, 13:48
Итак, на сервере стоит MySQL 5.0.37. В базе 5 таблиц, только пара из них достигает размера 10000-20000 записей... Получается, что некоторые запросы обрабатываются 3-4 секунды, и потом многие следующие запросы подвисают... Как бы улучшить это?

Автор: Glip 4.9.2007, 20:52
прооптимизировать.

а если серьёзно, то на мой взгляд не доствточно информации чтобы советовать что-то более конкретное

Автор: rgbeast 6.9.2007, 19:24
Если у Вас MyISAM, попробуйте сменить движок на InnoDB. InnoDB более детально относится к блокировкам, а именно блокирует только те записи, которые используются, а не таблицы целиком.

Автор: Бонифаций 7.9.2007, 14:23
недостаточно информации. покажите что выводит 
mysqladmin ext var

и explain ваших запросов

Автор: Anton Vatchenko 10.9.2007, 21:04
В прикрепленном файле...

Добавлено через 11 минут и 53 секунды
ниже привожу кусок создания одной из таблиц:
Код

CREATE TABLE `users` (
  `id` int(11) NOT NULL auto_increment,
  `login` varchar(16) default NULL,
  `password` varchar(16) default NULL,
  `cell` int(5) default '0',
  `x` smallint(5) default '0',
  `y` smallint(5) default '0',
  `update` int(11) default '0',
  PRIMARY KEY  (`id`),
  KEY `login` (`login`),
  KEY `update` (`update`),
  KEY `cell` (`cell`),
  KEY `pos` (`x`,`y`)
) ENGINE=MyISAM AUTO_INCREMENT=7885 DEFAULT CHARSET=utf8;


тормозят запросы например UPDATE USERS SET `update`=1000 where id=1024;

Автор: Бонифаций 13.9.2007, 17:28
а explain-ы?

Автор: muzer 14.9.2007, 05:11
Бонифаций, explain'ы работают только на Select'ы smile Чтобы посомтреть explain update'а нужно осторожно переделать его на select и потом учитывать все нюансы оптимизации select'ов.

Anton Vatchenko, если в консольке mysql сказать "show processlist", с каким там статусом висят ваши процессы? Это и будет собственно ответом, где слабое место.

Автор: Anton Vatchenko 17.9.2007, 15:38
41 root localhost:58760 Db Execute 2 statistics select id, password, payment, freq, warn, `update` from users where login=?

Автор: Бонифаций 17.9.2007, 16:02
Цитата(muzer @ 14.9.2007,  05:11)
Бонифаций, explain'ы работают только на Select'ы smile Чтобы посомтреть explain update'а нужно осторожно переделать его на select и потом учитывать все нюансы оптимизации select'ов.

а я не вижу где написано что только update тормозит.  Приведен один пример с update. про остальные запросы ничего не сказано.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)