如何查看mysql数据库操作记录日志?

我当时很困惑。
这次更新的进度没有任何说明,等了半天才停帖。
2 02 2 年,我在某个城市,处理一份价值数千万美元的电子表格,并实施更新。
结果我把where条件写错了。
我当时就想应该停止线程,但是一看,撤消撤消过程需要多长时间?我就放着了,不知道什么时候更新。
该怎么办?我突然想到,我可以查看进度吗?
我开始进行编辑,首先创建一个测试数据库,然后快速填充一堆数据。
然后,我不断地执行同一条SQL语句,很快表中的数据就达到了千万条。
我一看,有几行字。

接下来,我将进行一次大更新。
我开始了一个新的会话并开始监视性能图表中的信息。
嘿,这真的很有趣,它实际上列出了当前通过 SQL 从引擎获取的行数。

我等啊等,直到更新完成。
乍一看,从引擎获取的总行数是表大小的两倍。
我估计更新进度可能是(rows_examined)/(两行表)。
这是一个小技巧。
在information_schema.tables中,还可以估计表行数,成本比指定count(1 )低很多。

这是否意味着对于所有更新,从引擎获取的行数将是表大小的两倍?嗯,这个需要具体分析。
例如,我的 SQL 更新了主键。
如果只更新内容而不更新主键,结果可能会不同。

我测试了一下,发现Row_examined正好是表的大小。
如何准确估算这个乘数?我靠经验通过update语句的状态知道扫描了多少行,主键是否被修改,唯一键是否被修改,根据这些条件来估计事务。
或者在具有相同结构的较小表上尝试此操作,看看乘数是多少。

这样,我就可以准确地估计重大更新的进度。
哎,这个问题确实需要慢慢探讨。

如何查看MySQL数据库的死锁日志

上周,当我的朋友在处理MySQL数据库死锁问题时,他做了以下操作:
1 2 02 3 年1 月,他通过终端或命令提示符登录MySQL并输入以下命令: mysql -hxxxx.xxx.xxx -P3 3 06 -u用户名 -p 说明:xxxx.xxx.xxx为数据库的IP地址,username为数据库用户名。
输入后系统要求输入密码,登录成功。

2 在MySQL客户端下,他输入以下命令查看数据库死锁信息: 显示引擎 innodb 状态\G
3 接下来,他在输出信息中找到“LATESTDETECTEDDEADLOCK”部分,用红线标记出来,定位到了最新的死锁信息。

4 为了分析日志,定位死锁的原因,他观察到如下紫色下划线部分: 事务 1 ,等待表锁 锁表 tbj.score_user INDEX index_user_id 事务2 ,等待记录锁,空间ID 5 5 3 ,页号3 7 6 Nbits 3 6 8 ,表tbj.score_user 的索引index_user_id
分析:事务1 正在等待表tbj.score_user的index_user_id索引上的X锁,而事务2 则持有该索引的S锁,也在等待“事务2 ”提交,而不会造成死锁,但这里隐含的条件是事务1 也持有该索引的S锁。
因此,事务2 无法获取X锁,事务1 也无法获取X锁,从而导致死锁。

算了,随你吧,这个方法还挺方便的。

请问我的mysql的日志log在什么地方

摘要: 默认日志大小很小。

检查配置文件:/etc/my.cnf或/etc/mysql/my.cnf。

获取:log_error
查看值:是否指定了路径。

重启服务:systemctl mysqld restart或者重新启动mysqld服务。

检查日志:指定路径下是否存在文件。

默认未定义:/var/log/mysqld.log。

手动生成:touch /usr/local/mysql/data/.err。

授予权限:chown mysql:mysql /usr/local/mysql/data/.err。