Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11650
Последний выпуск: 19.06.2015

MySql сервер работает очень медленно

25K
06 января 2010 года
mdrm
37 / / 26.05.2008
Привет всем,

Помогите разобраться с проблемой, mysql обрабатывает запросы очень медленно, причем запросы SELECT возвращает быстро, а если надо сделать INSERT или UPDATE происходит очень долго. Примерно на один UPDATE уходит около 10 секунд. А в таблице 15 записей. Исправляю поле типа INTEGER.

Система:
VPS-сервер: 500Mhz 512Mb
OS: CentOS 5.1
Mysql 5.0.77

файл /etc/my.cfg
Код:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


Также отслеживал запросы с помощью скрипта:
 
Код:
#!/bin/bash
while [ 1 ]
do
    mysql -N --user=root --password=mypassword --host=127.0.0.1 mydb -e 'show processlist' |grep -v 'show processlist'
    sleep 2
done
exit

Как будто зависает при выполнении, не может ведь он так долго выполнять? Вот результат скрипта:
 
Код:
47      root    localhost       mydb         Query   2       end     update categories set pos = '5' where id = '5'
47      root    localhost       mydb         Query   4       end     update categories set pos = '5' where id = '5'
47      root    localhost       mydb         Query   6       end     update categories set pos = '5' where id = '5'
47      root    localhost       mydb         Query   8       end     update categories set pos = '5' where id = '5'
47      root    localhost       mydb         Query   11      end     update categories set pos = '5' where id = '5'
47      root    localhost       mydb         Query   13      end     update categories set pos = '5' where id = '5'
47      root    localhost       mydb         Query   15      end     update categories set pos = '5' where id = '5'
47      root    localhost       mydb         Query   17      end     update categories set pos = '5' where id = '5'


Что может быть??? Может проблема в оптимизации vps-сервера??

Запрос (SELECT *) в 200 записей вместе с полем типа TEXT отрабатывает очень быстро!!!
А то что файл my.cnf почти пустой так и должно быть???
25K
06 января 2010 года
mdrm
37 / / 26.05.2008
еще,

Uptime: 1211
Threads: 1
Questions: 385
Slow queries: 0
Opens: 29
Flush tables: 1
Open tables: 23
Queries per second avg: 0.318

Эту строку выводит после запроса UPDATE mysql_stat() (php).
Здесь еще что само интересно почему он пишет что открыто Open tables: 23 - Это так и должно быть???
25K
06 января 2010 года
mdrm
37 / / 26.05.2008
и при этом при выполнении команды top, при отрабатывании запроса, говорит что все демоны mysqld в режиме ожидания, процессор вообще не используется и ОЗУ на половину свободно.
2
06 января 2010 года
squirL
5.6K / / 13.08.2003
тип таблиц?
не загружена ли дисковая подсистема?
есть ли в таблице лишние индексы?
25K
06 января 2010 года
mdrm
37 / / 26.05.2008
тип InnoDB
Свободно на диске 18Gb
В таблице лишних индексов нет. Всего 3 поля:
 
Код:
int(10)         UNSIGNED     auto_increment (PRIMARY)
varchar(255)    utf8_general_ci      
int(11)


Что посоветуете?
25K
06 января 2010 года
mdrm
37 / / 26.05.2008
Стало все летать когда сменил тип таблиц InnoDB на MyISAM.
2
07 января 2010 года
squirL
5.6K / / 13.08.2003
не верное решение. MyISAM хорош тогда, когда с базой работает одно приложение.
при конкурентной записи - получите тормоза.
вы не решили проблему, а отодвинули ее.

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог