Эта статья участвовала в "Проект «Звезда раскопок»”, чтобы выиграть творческий подарочный пакет и бросить вызов творческим поощрительным деньгам.
предисловие
С момента выхода первого издания в 2018 г.MySQL 8.0.11
Начиная с официальной версии, версия MySQL была обновлена и итерирована до8.0.26
, по сравнению со стабильной версией 5.7 улучшение производительности 8.0 не вызывает сомнений!
Поскольку все больше и больше предприятий начинают использовать версию MySQL 8.0, это вызов и возможность для администраторов баз данных! 💪🏻
В этой статье в основном обсуждаются новые возможности версии MySQL 8.0:Постоянство глобального параметра
Постоянство глобального параметра
Версия MySQL 8.0 поддерживает онлайн-модификацию глобальных параметров и постоянство, добавляяPERSIST
ключевое слово, вы можете сохранить измененные параметры в новом файле конфигурации (mysqld-auto.cnf), а при перезапуске MySQL вы сможете получить последние параметры конфигурации из этого файла конфигурации!
Соответствующий рабочий журнал [WL#8688]:Dev.MySQL.com/work log/ Он сказал...
Чтобы включить эту функцию, используйте специальный синтаксисSET PERSIST
установить любую динамически изменяемую глобальную переменную!
- SET PERSIST
Операторы могут изменять значения переменных в памяти и записывать измененные значения в mysqld-auto.cnf в каталоге данных.
- SET PERSIST_ONLY
Оператор не изменяет значение переменной в памяти, он просто записывает измененное значение в mysqld-auto.cnf в каталоге данных.
кmax_connections
Параметры например:
mysql> select * from performance_schema.persisted_variables;
Empty set (0.00 sec)
mysql> show variables like '%max_connections%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| max_connections | 151 |
| mysqlx_max_connections | 100 |
+------------------------+-------+
2 rows in set (0.00 sec)
mysql> set persist max_connections=300;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from performance_schema.persisted_variables;
+-----------------+----------------+
| VARIABLE_NAME | VARIABLE_VALUE |
+-----------------+----------------+
| max_connections | 300 |
+-----------------+----------------+
1 row in set (0.00 sec)
Система сгенерирует файл, содержащийjson
Отформатированный файл mysqld-auto.cnf отформатирован, как показано ниже: Когда существуют и my.cnf, и mysqld-auto.cnf, последний имеет более высокий приоритет.
{
"Version": 1,
"mysql_server": {
"max_connections": {
"Value": "300",
"Metadata": {
"Timestamp": 1632575065787609,
"User": "root",
"Host": "localhost"
}
}
}
}
📢 Примечание:даже если ты пройдёшьSET PERSIST
Изменение значения конфигурации ничего не меняет и также записывается в файл mysqld-auto.cnf. Но вы можете сделать это, установивDEFAULT
value способ восстановить исходное значение по умолчанию!
Если вы хотите восстановитьmax_connections
Параметры являются начальными значениями по умолчанию, просто выполните:
mysql> set persist max_connections=DEFAULT;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from performance_schema.persisted_variables;
+-----------------+----------------+
| VARIABLE_NAME | VARIABLE_VALUE |
+-----------------+----------------+
| max_connections | 151 |
+-----------------+----------------+
1 row in set (0.00 sec)
Если вы хотите удалить все глобальные постоянные параметры, просто выполните:
mysql> RESET PERSIST;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from performance_schema.persisted_variables;
Empty set (0.00 sec)
Конечно, вы можете перезапустить MySQL после удаления файла mysqld-auto.cnf!
напиши в конце
Основной код: Commit f2bc0f89b7f94cc8fe963d08157413a01d14d994
Основная функция входа (8.0.0):
接口函数大多定义在sql/persisted_variable.cc文件中:
启动时载入mysqld-auto.cnf的内容: Persisted_variables_cache::load_persist_file(); 通过json解析合法性,并存入内存
将文件中读取的配置进行设置: Persisted_variables_cache::set_persist_options
运行SET PERSIST命令时,调用Persisted_variables_cache::set_variable 更新内存中存储的值
写入mysqld-auto.cnf文件中: Persisted_variables_cache::flush_to_file
Справочная документация:
Этот обмен заканчивается здесь~
Если вы считаете, что статья полезна для вас,Нравится, Избранное, Следите, Комментируйте, Поддержка четырех ссылок одним щелчком мыши, ваша поддержка является самой большой движущей силой для моего творчества.
❤️ Для технических обменов, пожалуйста, подпишитесь на официальный аккаунт:Люцифер думает дважды❤️