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

mysql 笔记-ag真人游戏

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

菜鸟阅读 : 348

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

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

菜鸟阅读 : 318

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

全局锁和表级锁

菜鸟阅读 : 348

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

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

菜鸟阅读 : 368

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

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

菜鸟阅读 : 323

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

普通索引还是唯一索引?

菜鸟阅读 : 347

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

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

菜鸟阅读 : 409

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

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

菜鸟阅读 : 390

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

orderby是如何工作的?

菜鸟阅读 : 305

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

数据库的三大范式

菜鸟阅读 : 613

1.为什么需要数据库设计 设计数据表的时候,要考虑很多的问题: 用户需要哪些数据,我们在数据表中要保存哪一些数据 怎么保证数据表中的数据的正确性 如何降低数据表的冗余度 开发人员怎么才能更方便的使用数据库 如果数据库设计得不合理的话,可能导...

网站地图