2012-05-22 2 views
1

Я просматриваю слишком много соединений на сервере mysql и phpmyadmin, так как скорость передачи данных в час ~ 1000 от источника в моей базе данных. Когда I TOP на сервере, mysqld показывает 100-145% использования процессора, также работает много потоков php, как вставка данных через php-скрипт. Мой вопрос в том, есть ли какой-либо механизм, с помощью которого соединения не переполняются, а сервер mysql использует процессор как можно ниже. поскольку я использую сервер VPS, но не так эффективно использовать другое приложение на vps, потому что сервер mysql занимает 100% -ный процессор. Когда-то phpmyadmin выходит из строя и показывает некоторую народную ошибку. Я прочитал кэш запросов, но он используется для кеширования одних и тех же запросов выбора, должен ли я использовать это для вставки или есть ли какое-либо другое оптимальное решение вида механизм очереди. Кроме того, я не могу сказать о том, в какое время скорость ввода данных низкая или высокая, если он знает, тогда я могу попробовать механизм очереди. Заранее спасибо!Слишком много подключений используется для вставки данных в mysql

+2

Извините? Я не понимаю. – GordonM

+0

@GordonM: постоянная вставка данных в базу данных через php-скрипт, сервер mysql использует 100% -ное использование процессора на сервере vps – Shashank

ответ

0

Вы должны получить общее представление о «QUERY CACHE» по следующей ссылке mysql_query cache

+0

Кэш-запрос не является для меня проблемой, так как данные вставляются через некоторый источник непрерывно, а не выбирают некоторые данные из базы данных. – Shashank

1

Проверьте свои коды и посмотреть, если у вас есть что-то вроде

for($i = 0; $i < 10000; $i++) // basicly long loop with inserts 
    mysql_query("INSERT INTO table_name (id, value) VALUES ({$i}, 100)"); 

Это должно быть изменено на что-то например

$arr_values = array(); 
for($i = 0; $i < 10000; $i++) 
    $arr_values[] = "({$i}, 100)"; 

$str_values = implode(', ', $arr_values); 

mysql_query("INSERT INTO table_name (id, value) VALUES {$str_values}"); 

Следует помнить о ненужных запросах в вашем коде ,

+0

Is memcache для этой проблемы? Поскольку он работает как сервер и клиент – Shashank

+0

, я еще не нашел пути для решения проблемы превышения базы данных, я использую запрос вставки в секунду ~ 20, но не находит механизм кэширования для вставки, который записывает данные в базу данных и обрабатывает использование меньше соединений mysql – Shashank

Смежные вопросы