标签:MySQL
Laravel 动态创建 mysql 数据库表
有时我们需要动态创建数据库表;如定期备份表 backup-2023-11 , 此时用数据库迁移就不合适了,可以在代码中动态创建,代码如下: use Illuminate\Support\Facades\Schema; $tableName = 'backup-2023-11'; # 先检测该表是否已存在 if (!S ...
MySql 字段类型说明和推荐
char(M)和varchar(M)的区别: char的长度是不可变的,而varchar的长度是可变的; char(M)定义的列的长度为固定的,M取值可以为0~255之间; varchar(M)定义的列的长度为可变长,M取值可以为0~65535之间; 定义一个char[10]和varchar[10],如果存进去的是‘a ...
高并发系统数据库架构设计
在WEB网站的规模从小到大不断扩展的过程中,数据库的访问压力也不断的增加,数据库的架构也需要动态扩展,在数据库的扩展过程基本上包含如下几步,每一个扩展都可以比上一步骤的部署方式的性能得到数量级的提升。 WEB应用和数据库部署在同一台服务器上 一般的小规模的网站采用这种方式,用户量、数据量、并发访问量都比较小,否则单台服 ...
Larvale MySQL事务回退、悲观锁
use Illuminate\Support\Facades\DB; try{ DB::transaction(function () use ($data) { # 获取用户信息,加悲观锁,其他的不可读写 $userInfo = UserProfile::query()->where([ ...
MySQL 共享锁&排他锁
共享锁(lock in share mode) 允许不同事务之间共享加锁读取,但不允许其它事务修改或者加入排他锁;如果有修改必须等待一个事务提交完成,才可以执行,容易出现死锁 共享锁事务之间的读取 session1: start transaction; select * from test where id = 1 ...
mysql 事务特性以及隔离级别说明
事务: 事务就是针对数据库的一组操作,它可以由一条或者多条SQL语句组成,同一个事务的操作具备同步的特点,如果其中有一条语句不能执行的话(或执行失败),那么所有的语句都不会执行,也就是说,事务中的语句要么都执行,要么都不执行。 注意只有使用innodb引擎的数据库或表才支持事务,MyISAM引擎不支持事务处理 事务特性 ...
MySQL order by limit 分页数据重复或丢失问题说明
mysql 中当 order by 与limit 同时使用,数据可能出现重复或丢失问题 使用了 下面的 方法 发现也没什么问题 Db::name('users') ->where(['is_disabled'=>0]) ->field('id,nickname,team_son+team_gran ...
Mac 系统上使用 docker 安装 MySql
以 mysql 5.7 为例: 1、拉取 mysql 镜像 docker pull mysql 2、启动 mysql 容器 docker run --restart=always --name mysql -p 3306:3306 -v /Users/wml/data/mysql/:/var/lib/mysql -e ...
理解 MySQL 字符集
转自:明月逐人归 平时我们用MySQL,字符编码方式一般是 utf8 或者 utf8mb4,至于MySQL内部是如何处理编码问题的在日常开发中并没有十分关注,遇到最多的问题也无非是表中中文乱码和表情无法存储。对于编码不一致的问题,出问题是在所难免的,我们需要系统地了解下在MySQL内部字符集是如何配置和转化的。 字符集 ...
mysql 控制 sql 长度的相关参数
max_allowed_packet : 控制整个sql 语句长度限制 group_concat_max_len : 限制GROUP_CONCAT函数返回的结果大小,默认限制为1024(字节)的长度。 ...