菜鸟笔记
提升您的技术认知

mysql 笔记-ag真人游戏

事务隔离:为什么你改了我还看不见?

菜鸟阅读 : 647

1. 事务的概念 简单来说,事务就是要保证一组数据库操作,要么全部成功,要么全部失败。 在mysql中,事务是在存储引擎层实现的。mysql时支持多种存储引擎的系统,但并不是所有存储引擎都支持事务。比如myisam引擎就不支持事务,所以这也...

日志系统:一条更新sql是如何执行的?

菜鸟阅读 : 491

1. update语句执行基本流程 首先,我们先创建一个表,拥有两个字段,id(主键,整形)和 c(整形) mysql> create table t(id int primary key,c int); 接着,我们对于id=2的行进...

基础架构:一条查询sql是如何执行的?

菜鸟阅读 : 450

1. mysql整体架构 mysql可以分为server层和存储引擎,而我们通常使用的连接命令是客户端工具。 server层主要是对于用户的sql语句进行处理,涵盖mysql的大部分核心功能。还包括内置函数,视图,触发器,存储过程等。 存储...

全局锁和表级锁

菜鸟阅读 : 479

1. 全局锁 顾名思义,全局锁就是对整个数据库实例加锁。 mysql提供了一个加全局读锁的方法,命令是flush tables with read lock(ftwrl)。当使用了这个命令,整个数据库都处于只读状态,下列几种线程会被阻塞: ...

行锁:怎么减少行锁对性能的影响

菜鸟阅读 : 525

1.行锁的定义 mysql的行锁是在引擎层由各个引擎自己实现的。但是并不是所有引擎都支持行锁。比如myisam引擎就不支持行锁,不支持行锁意味着并发控制只能用表锁,也就是同一张表在任何时刻只能有一个更新在执行。而innodb是支持行锁的,这...

事务到底是隔离还是不隔离?

菜鸟阅读 : 462

1. 引例 之前我们探讨过可重复读隔离级别下,事务t启动的时候会创建一个视图read-view。在事务t执行期间,即使有其他事务修改了数据,事务t看到的也是跟启动时一样的。 但是上次讲到行锁的时候,当事务t要更新当前行的时候,其他事务占据了...

普通索引还是唯一索引?

菜鸟阅读 : 454

1.引例 假设现在维护着一个市民系统,每个人都有唯一的一个身份证号,而且业务代码已经保证了不会写入两个重复的身份证号,如果市民系统需要按照身份证号查姓名,就会执行下面的sql语句: mysql> select name from cu...

如何给字符串字段加索引?

菜鸟阅读 : 642

1.引例 现在的系统中,很多都会包含邮箱字段,那要如何给这个字段建立索引呢? 假设,现在维护了一个用户表,其中包含邮箱,定义如下: mysql> create table suser( id int primary key, emai...

count()这么慢,我们该怎么办

菜鸟阅读 : 544

1. count(*)的实现方式 对于不同的mysql存储引擎,count(*)有不同的实现方式。 myisam引擎把一个表的总行数存在了磁盘上,因此执行count(*)的时候会直接返回这个数,执行效率很高。 inndb引擎在执行count...

orderby是如何工作的?

菜鸟阅读 : 468

1. 引言 假设我们现在有一个市民表定义如下: create table t( id int(11) not null, city varchar(16) not null, name varchar(16) not null, age i...

网站地图