1. 行级锁:共享锁(S)和排他锁(X) 共享锁:允许持锁事务读取一行,事务A持有S锁,事务B请求S锁时,会立即被赋予,若请求X锁,需等待释放S锁才可以拿; 排他锁:允许持锁事务更新或删除一行,事务A持有X锁,事务B请求S、X锁时,需等待释放X锁才可以拿; 2. 表级锁:意向锁(I)和自增锁 意向锁 ...
分类:
数据库 时间:
2019-10-01 18:20:33
阅读次数:
87
事务的隔离是并发操作中需要理解清楚的问题.MySQL中共有4种不同的隔离级别,这4种隔离级别分别是: 可以看出,不同的隔离级别有不同的多事务执行结果。MySQL中的InnoDB存储引擎的默认的隔离级别是可重复读(REPEATABLE READ). 本文使用演示了上表中所列出的4种隔离级别(基于MyS ...
分类:
数据库 时间:
2019-09-30 23:19:03
阅读次数:
113
看了一些MySQL索引方面的东西,这里做一下小结一下(还是怕自己忘了)。涉及的是Innodb引擎以及B+树,如果有误,请各位大佬指出。 聚簇索引 这个东西是根据主键索引形成的一种数据存储方式 。 没有主键咋办呀?不慌,看一下有没有非空唯一索引; 有好几个非空唯一索引可咋办?照样不慌,Innodb自动 ...
分类:
数据库 时间:
2019-09-29 23:58:19
阅读次数:
168
0)前言 a. 基本规约 【强制】表存储引擎必须使用InnoDB(针对主库一般是强制要求的) 【强制】表字符集默认使用utf8,必要时候使用utf8mb4(个人踩坑:emoji表情存储问题)?说明:?通用,无乱码风险,汉字3字节,英文1字节?utf8mb4是utf8的超集,有存储4字节例如表情符号时 ...
分类:
数据库 时间:
2019-09-29 22:17:02
阅读次数:
142
一、基础规范 表存储引擎必须使用InnoDB 表字符集默认使用utf8,必要时候使用utf8mb4 解读:(1)通用,无乱码风险,汉字3字节,英文1字节(2)utf8mb4是utf8的超集,有存储4字节例如表情符号时,使用它 禁止使用存储过程,视图,触发器,Event 解读:(1)对数据库性能影响较 ...
分类:
数据库 时间:
2019-09-29 22:14:21
阅读次数:
130
联系上文 "SQL查询语句的执行" 查询语句的那一套流程,更新语句也是同样会走一遍。 更新流程还涉及两个重要的日志模块: ? redo log (重做日志)和 binlog (归档日志) redo log:重做日志 redo log是InnoDB引擎特有的日志 WAL技术,全称是Write Ahea ...
分类:
数据库 时间:
2019-09-29 22:04:09
阅读次数:
185
随网络聊天室是用户比较喜欢的一种WEB应用程序,借助聊天室,用户可以及时互通信息,交流思想.本系统主要采用了基于B/S(Browser/Server,即浏览器/服务器)模式开发的简易聊天室系统。本系统主要是采用了S2SH技术和JSP技术开发的动态网站。系统开发主要包括前台页面设计、功能设计和后台数据 ...
分类:
其他好文 时间:
2019-09-28 20:37:22
阅读次数:
151
写在前面的话 在前面的内容中提到过,在以前的 MyISAM 中锁是表级锁,InnoDB 是行级锁。这个锁到底是啥样,怎么找出来,这一节就主要做这个。 定位锁的问题 上一节我们创建了一个 1000万数据的表,这里会用到。 假设这样一个场景,我们 top 看到服务器 CPU 占用超级高,等待也很高,查询 ...
分类:
数据库 时间:
2019-09-28 17:55:31
阅读次数:
148
对于任何DBMS,索引都是进行优化的最主要的因素。对于少量的数据,没有合适的索引影响不是很大,但是,当随着数据量的增加,性能会急剧下降。如果对多列进行索引(组合索引),列的顺序非常重要,MySQL仅能对索引最左边的前缀进行有效的查找。 例如:假设存在组合索引idx(c1,c2),查询语句select ...
分类:
数据库 时间:
2019-09-28 00:35:21
阅读次数:
104
OverviewGalera ClusterPercona XtraDB ClusterMySQL Group ReplicationMySQL InnoDB ClusterSimilaritiesSimilar - Use CasesSimilar LimitationDifferences GR... ...
分类:
数据库 时间:
2019-09-27 15:03:56
阅读次数:
106