列表格式显示
广告招商中...... 联系方式!
私信 +好友
在老旧项目优化过程中,sql优化总绕不过去,要优化mysql索引和语句优化,但是项目大,创建了sql日志,也不可能每一条手动去分析,
这里推荐一款工具Neor Profile Sql工具,开始是看一篇博客写的这个工具,但是没有介绍具体使用方法。
下面是我自己搞得一个汉化文件,如果各位觉得哪里汉化的有问题,可以在评论回复一下,我在进行修改。
放上工具的安装文件和汉化文件下载地址
链接:https://pan.baidu.com/s/1eZp66H7cJm2nRgOf26TlHQ 提取码:dx6p
接下来说明一下工具使用,这个工具很小,使用也很简单,平时项目中的mysql的端口一般都是3306,如下图
在配置完成一个自己的mysql访问后,点击分析器标签可以看到,分析器默认设置的端口是4040
这个端口就看自己需求了,这个端口就是后面我要使用工具来分析项目执行sql的端口
在配置完成后,项目中我们会创建一个通过3306来访问数据库mysql实例,如果要是用分析工具,
那我们需要在项目中在创建一个通过4040端口访问数据库的mysql实例,两个实例都执行sql语句,
3306端口实例,是为了查看数据库一个统计数据,执行效率等,如下图
4040端口实例就是我们所有执行过的sql的一个集合,展示sql执行状态,和每个语句可以单独执行查看执行效率,是否使用索引等支持导出,可以节省项目中写入sql日志功能
基本就是这样了,至于4040端口实例的执行,不需要返回结果,所以异步执行就可以
当你发现自己的才华撑不起野心时,就请安静下来学习吧
https://blog.csdn.net/xiaoxionglove/article/details/122523125
https://blog.csdn.net/lygzscnt12/article/details/139086210
https://github.com/neor/Neor-Profile-SQL
neor profile sql 目前最新版本4.1.1是2015年发布,与最新的MySQL8.0版本已经不兼容。当创建连接的时候会报“Test is failed”的错误。
问题原因:MySQL8.0修改了授权认证协议,导致neor profile sql连接失败。
解决方案:在MySQL端执行如下sql语句,其中的‘password’设为你自己的数据库密码,重新连接neor profile sql 就可以连接了:
ALTER USER 'root' @ 'localhost' IDENTIFIED WITH mysql_native_password BY 'password'
https://www.yisu.com/jc/265802.html
mysql -u root -p
select user,plugin from user where user='root';
update user set plugin='mysql_native_password' where user='root';
--update user set plugin='caching_sha2_password' where user='root';
flush privileges;
net stop mysql84
net start mysql84
方法一:
登录MySQL后输入:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
方法二:
编辑my.cnf文件,更改默认的身份认证插件。
vi /etc/my.cnf
在[mysqld]中添加下边的代码
default_authentication_plugin=mysql_native_password
然后重启MySQL
service mysqld restart
https://www.jb51.net/database/32651707p.htm
mysql使用的时候会有报错:
Plugin 'mysql_native_password' is not loaded
1) 首先确认mysql_native_password插件是否已经安装
安装mysql_native_password插件
INSTALL PLUGIN mysql_native_password SONAME 'mysql_native_password';
如果已经安装,会显示该插件已经存在
2) 查看插件状态
show plugins;
看看mysql_native_password插件的状态是不是ACTIVE,如果状态值为DISABLED则说明插件没有激活
3) 修改my.cnf或my.ini配置文件
[mysqld] mysql_native_password=ON #添加此行
不要添加default_authentication_plugin=mysql_native_password,否则mysql会无法启动。
4) 重启mysql服务
5) mysql命令行查看用户使用的插件
select user,host,plugin from mysql.user;
6) 修改密码认证方式
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your password'; FLUSH PRIVILEGES; #刷新权限
目前,可以在Oracle官网查看到MySQ 8.4新增的内容:
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/mysql-nutshell.html
这里选一些重点变化项聊一下。
从 MySQL 8.4.0 开始,mysql_native_password 认证插件默认不再启用。
若要启用,需要在MySQL启动的时候,添加–mysql-native-password=ON 参数;
或在配置文件中设置 mysql_native_password=ON。
MySQL 8.4,还调整了与 InnoDB 存储引擎相关的多个服务器系统变量的默认值,比如:
innodb_io_capacity
默认值改成了10000,之前是200。
控制每秒可用于 InnoDB 后台任务的 I/O 数。
比如缓冲池中的页面刷新,或者合并来自更改缓冲区的数据。
如果是 SSD,可设置 5000 以上。
现在线上MySQL,基本都是SSD,所以默认值设置成10000也合理。
innodb_buffer_pool_instances
InnoDB 缓冲池的区域数,将缓冲池划分多个区域,可以减少不同线程读取和写入缓存页时的争用,可提高并发性。
之前默认值是8,如果innodb_buffer_pool_size< 1G,则为1。
从8.4开始,如果innodb_buffer_pool_size<= 1G,则为1;
如果innodb_buffer_pool_size>1G,则是在下面两个计算中,选一个最小值:
innodb_buffer_pool_size innodb_buffer_pool_chunk_size这个结果的1/2;
可用逻辑CPU数量的1/4。
innodb_change_buffering
决定哪些操作会使用change buffer,有关change buffer,我们在前面详细介绍过:一文弄懂MySQL更改缓冲区。
之前的版本默认值是all,表示innodb_change_buffering会缓存插入、删除标记操作和后台发生的物理删除操作。
从8.4开始,默认是none,表示不缓存这些修改操作,这个不太理解,大家可以在留言区讨论,可能考虑什么因素。
克隆插件的版本要求放宽,允许在同一大版本号下的不同小版本之间进行克隆。
group_replication_set_as_primary变化
使用group_replication_set_as_primary() 选举新主节点前,会等待正在进行的 DDL 语句完成。当然,这个是从8.1开始有的特性。
参数group_replication_consistency默认值变更
默认值改成了BEFORE_ON_PRIMARY_FAILOVER,以前是EVENTUAL。
这里补充一下group_replication_consistency几个值的介绍:
EVENTUAL:事务提交后会广播到集群的多数节点,然后节点检查是否有冲突,如果没有冲突,则事务在本地提交,其他节点异步处理,可能导致读取到稍旧的数据。
EVENTUAL
BEFORE_ON_PRIMARY_FAILOVER:在主节点故障时,必须等待新主处理完待处理的事务,才能开始响应业务的读写请求,这样可以保证业务读写请求不会读取到旧数据。
BEFORE_ON_PRIMARY_FAILOVER
BEFORE:一个事务会等待之前的事务执行完后再开始执行,确保读取到的数据是最新的。
BEFORE
AFTER:写事务会等待其更改在所有其他节点应用后才提交,保证后续事务读取已写入或其他节点上最新的值。对只读事务没有影响
AFTER
BEFORE_AND_AFTER:会等待之前的事务执行完后才开始执行新事物,并等到事务在所有节点应用后才提交,确保读取和提交都具有强一致性。
BEFORE_AND_AFTER
参数group_replication_exit_state_action默认值变更
group_replication_exit_state_action 默认值改成了OFFLINE_MODE,以前是READ_ONLY。
这个参数控制了MGR实例处理故障节点的方式,有三个选项:
设置为read_only时,会把这个实例的super_read_only设置为on;
设置为offline_mode时,会把这个实例切换到离线模式
设置为abort_server时,将关闭MySQL。
我们可以回顾一下MGR的故障检测流程:
也就是当一个节点出现故障之后,进行group_replication_autorejoin_tries参数配置的自动重连次数之后。
这个节点的行为,之前默认情况下,是设置为super_read_only,现在是会把实例切换到离线模式。
net stop mysql
net start mysql
mysql -uroot -p
-- 输入密码
alter user 'root'@'localhost' identified with mysql_native_password;
alter user 'root'@'localhost' identified by '123456';
https://pan.baidu.com/s/1V7T8iKRxa_7YZNNGuqAW_A
提取码:zcic
本页Html网址:/htmlsoft/619429.html
本页aspx网址:/soft.aspx?id=619429&bianhao=202410071214034469_10578&kind1=&kind2=
最后访问时间:
上一篇:Navicat16.3.9安装和免费使用教程
下一篇:MySQL 8.4 免安装版配置 zip压缩包
增加