编程日志 | nohup.net

实践是检验真理的唯一标准

mysql数据库blob类型如何查看内容

不废话:

再谈MySQL事务

查看和设置自动提交:

show variables like "autocommit";

set autocommit= false;


SHOW GLOBAL VARIABLES LIKE 'autocommit';

SET GLOBAL autocommit = false;


查看事务隔离级别:

show session variables like '%isolation%';

关闭MySQL自动提交功能的几种方式


MySQL的自动提交功能是每次在进行DML操作时自动进行提交的功能,但在有些场景中我们还是需要禁止MySQL自动提交功能,维持事务的隔离性,以免发生不可预知的情况。下面就来详细讲解如何禁用MySQL自动提交功能。


1. 编辑MySQL配置文件,设置“autocommit=off”:

MySQL自动提交功能默认是打开的,要想禁止MySQL自动提交,只需要在MySQL的配置文件中设置“autocommit=off”,当DML操作执行完成后就不会自动提交。

阿里云RDS之MySQL 锁等待超时(Lock wait timeout exceeded)

最近碰到一个MySQL锁,导致线上服务503的情况,记录一下。

报错如下:

8833816-### SQL: UPDATE mydb.tokens          SET counts = counts - 1          WHERE token = ?

mysql的binlog同步解析工具canal

传送门:

https://zhuanlan.zhihu.com/p/177001630


数据库不停机停服修改表结构方案简述

  1. 如果数据量很少(1万条以内),直接alter table即可。会造成锁表,也是很短时间内(3秒以内),用户最多感觉会卡顿一下,并没有太大影响,简单方便。

  2. 锁住老表的更新操作(insert、delete、update等),然后迁移数据,然后rename表名,然后删除老表,然后释放锁。锁定期间,前端用户只能进行读操作。

dbeaver通用数据库连接工具(类似Navicat)

传送门:

https://dbeaver.io/


利用SUBSTRING_INDEX只留字符串空白符号的前半截的SQL语句

SELECT
	`name`,
	SUBSTRING_INDEX(`name`, '\r', 1),
	LENGTH(`name`),
	LENGTH(
		SUBSTRING_INDEX(`name`, '\r', 1)
	)
FROM
	`tb_site`
ORDER BY
	LENGTH(`name`) DESC;

数据库三范式

基本操作,传送门:

http://www.zuidaima.com/blog/4452207479213056.htm

image.png

数据库删除操作很慢

偶尔发现一招,挺有效。

但是多次执行带limit的删除语句,很快。

delete FROM `site` where classid not in (select classid from tb_class) limit 500;


<< 1 2 > >>

Powered By Z-BlogPHP 1.7.2

© 2013-2022 nohup.net , All Rights Reserved. 豫ICP备20020372号-1