У меня есть файл оболочки, как это:

grep 'INSERT INTO container' $file | mysql database -f

У меня проблема в том, что MySQL получает слишком много вставок и сильно тормозит (база данных в основном доступна только для чтения, а это только вставка).

Я хочу иметь что-то, что может замедлить скорость / канал управления "пропускной способностью", подобное этому:

grep 'INSERT INTO container' $file | gzip -9 | gunzip | mysql database -f

Здесь gzip -9 | gunzip замедлит процесс и давление на MySQL будет низким.

У команды pv есть такие способности, но это интерактивная команда. Я ищу что-то неинтерактивное.

2 ответа2

2

Вы должны использовать pv с опцией -q которая из руководства:

-q, --quiet
    No output.  Useful if the -L option is being used on its own to just limit the transfer rate of a pipe.

Поэтому с помощью команды grep 'INSERT INTO container' $file | pv -L 100 -q | mysql database -f должна делать то, что вы хотите. Возможно, 100 слишком медленный, но вы можете поставить как 5k или больше, если хотите.

1

Вы можете использовать вставку с задержкой (устарела в последней версии)http://dev.mysql.com/doc/refman/5.7/en/insert-delayed.html

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .