个人简介

Echo Blog


江湖无名 安心练剑
  • mysql-13-mysql 锁 lock
    MySQL 有哪些锁? 这次,来说说 MySQL 的锁,主要是 Q&A 的形式,看起来会比较轻松。 在 MySQL 里,根据加锁的范围,可以分为全局锁、表级锁和行锁三类。 全局锁 全局锁是怎么用的? 要使用全局锁,则要执行这条命令: flush tables with read lock 执行后,整个数据库就处于只读状态了,这时其他线程执行以下操作,都会被阻塞: ...
    2020-10-17 08:15:55 | Database
  • mysql-12-mysql 的一条数据是如何保存的?
    前言 如果你知道 MySQL 一行记录的存储结构,那么这个问题对你没什么难度。 如果你不知道也没关系,这次我跟大家聊聊 MySQL 一行记录是怎么存储的? 知道了这个之后,除了能应解锁前面这道面试题,你还会解锁这些面试题: MySQL 的 NULL 值会占用空间吗? MySQL 怎么知道 varchar(n) 实际占用数据的大小? varchar(n) 中 n 最大取值为多少? ...
    2020-10-17 08:15:55 | Database
  • mysql-11-执行一条 select 语句,期间发生了什么?
    前沿 学习 SQL 的时候,大家肯定第一个先学到的就是 select 查询语句了,比如下面这句查询语句: // 在 product 表中,查询 id = 1 的记录 select * from product where id = 1; 但是有没有想过,MySQL 执行一条 select 查询语句,在 MySQL 中期间发生了什么? 带着这个问题,我们可以很好的了解 MySQL 内...
    2020-10-17 08:15:55 | Database
  • mysql-10-MySQL查询数据表的Auto_Increment(自增id)
    场景 有时候我们希望获取当前表的最大自增主键信息。 获取方式 方式 1 一般数据表的id都是设置成auto_increment的,所以当插入一条记录后,可以使用下面的命令来获取最新插入记录的id值 select last_insert_id(); 注意: 必须是在使用 insert 语句后,紧接着使用select last_insert_id()才有效,在没有...
    2020-10-17 08:15:55 | Database
  • mysql(9)transaction 事务2
    事务 转账中,要么全部成功,要么全部失败。 要解决这个问题,就要保证转账业务里的所有数据库的操作是不可分割的,要么全部执行成功 ,要么全部失败,不允许出现中间状态的数据。 数据库中的「事务(Transaction)」就能达到这样的效果。 我们在转账操作前先开启事务,等所有数据库操作执行完成后,才提交事务,对于已经提交的事务来说,该事务对数据库所做的修改将永久生效,如果中途发生发生中断...
    2020-10-17 08:15:55 | Database
  • mysql(9)transaction 事务2
    7.3事务控制语句 在MySQL命令行的默认设置下, 事务都是自动提交(autocommit) 的, 即执行SQL语句后就会马上执行COMMIT操作。 因此要显式地开启一个事务需使用命令BEGIN、START TRANSACTION, 或者执行命令SET AUTOCOMMIT=0, 禁用当前会话的自动提交。 每个数据库厂商自动提交的设置都不相同, 每个DBA或开发人员需要非常明白这一点...
    2020-10-17 08:15:55 | Database
  • mysql(6)transaction 事务
    事务(Transaction) 是数据库区别于文件系统的重要特性之一。 在文件系统中, 如果正在写文件,但是操作系统突然崩溃了,这个文件就很有可能被破坏。 当然,有一些机制可以把文件恢复到某个时间点。不过,如果需要保证两个文件同步,这些文件系统可能就显得无能为力了。 例如,在需要更新两个文件时,更新完一个文件后,在更新完第二个文件之前系统重启了,就会有两个不同步的文件。 这正是数据...
    2020-10-17 08:15:55 | Database
  • mysql(6)lock mysql 锁
    锁 开发多用户、数据库驱动的应用时,最大的一个难点是:一方面要最大程度地利用数据库的并发访问,另外一方面还要确保每个用户能以一致的方式读取和修改数据。 为此就有了锁(locking ) 的机制, 同时这也是数据库系统区别于文件系统的一个关键特性。 InnoDB 存储引擎较之MySQL数据库的其他存储引擎在这方面技高一筹, 其实现方式非常类似于Oracle数据库 。而只有正确了解这些锁...
    2020-10-17 08:15:55 | Database