Во-первых, никакая оптимизация и кэширование не могут заменить физическое оборудование. Лучшая форма оптимизации — добавить больше памяти на ваш сервер, а затем выполнить шаги по оптимизации.
Оптимизация MySQL — это непрерывная процедура. Вы должны проводить оптимизацию MySQL каждую неделю. Это позволит вам настроить конфигурацию MySQL.
Пять лет назад, когда был задан этот вопрос, мы были на Trusty Tahr, который я помню больше всего, и с ним был файл my.cnf
, который можно было отредактировать, перемотать вперед в Xenial, если открыть /etc/mysql
нет файла my.cnf
для редактирования. Сейчас это ссылка на/etc/alternatives/my.cnf
Файл, который вы хотите отредактировать с помощью Xenial (Ubuntu 16 ), находится в другом каталоге, и это /etc/mysql/mysql.conf.d
. Файл, который вы будете редактировать для тех, кто просматривает этот пост, который я сейчас ускорю, называется mysqld.cnf
.
Создайте резервную копию вашего файла, затем вернитесь в свой домашний каталог и используйте mysqlcheck
для оптимизации ваших баз данных.
Это, с GNU sed
, каким бы уродливым оно ни было, я думаю, делает свое дело:
sed -e 's/PAT1/\nPAT1\n/' -e 's/PAT2/\nPAT2\n/' file | sed -n '/PAT1/,/PAT2/{//!p}'
Возьмите PAT1 и PAT2 и добавьте новые строки в начале и в конце:
sed -e 's/PAT1/\nPAT1\n/' -e 's/PAT2/\nPAT2\n/'
Blalala
'Omfoem From
balanf
PAT1
This is the
text that I want
to get
PAT2
: apples
Печатать текст между PAT1 и PAT2:
sed -n '/PAT1/,/PAT2/{//!p}'
This is the
text that I want
to get
Вариант GNU *awk
, просто сделайте PAT2
разделителем записей RS
, PAT1
разделителем полей FS
и напечатайте последнее поле NF
, убедившись, что вывод не является результатом повторениеRS
awk 'BEGIN{RS="PAT2"; FS="PAT1"}NF>1{print $NF}' file1
This is the
text that I want
to get
This is another text that I want
to get DONE
*Отмечено @EdMorton
С любым awk в любой оболочке на каждой машине UNIX:
$ awk 'sub(/.*PAT1 */,""){f=1} f{if ( sub(/ *PAT2.*/,"") ) f=0; print}' file
This is the
text that I want
to get
Вышеупомянутое работает для предоставленного вами образца ввода, если у вас есть другой ввод в другом формате, для которого это не работает (, например. вложенные начальные/конечные строки или начальная строка после конечной строки в той же строке ), то, пожалуйста, отредактируйте свой вопрос, чтобы показать это.