MySQL InnoDB事务隔离级别脏读、可重复读、幻读 具体地: 1). 脏读 首先区分脏页和脏数据 脏页是内存的缓冲池中已经修改的page,未及时flush到硬盘,但已经写到redo log中。读取和修改缓冲池的page很正常,可以提高效率,flush即可同步。脏数据是指事务对缓冲池中的行记录r ...
分类:
数据库 时间:
2019-09-26 11:29:31
阅读次数:
93
索引是帮助mysql获取数据的数据结构。最常见的索引是Btree索引和Hash索引。 不同的引擎对于索引有不同的支持:Innodb和MyISAM默认的索引是Btree索引;而Mermory默认的索引是Hash索引。 我们在mysql中常用两种索引算法BTree和Hash,两种算法检索方式不一样,对查 ...
分类:
其他好文 时间:
2019-09-25 00:40:52
阅读次数:
84
基于数据库: 基于数据库表做乐观锁,用于分布式锁。(version) 基于数据库表做悲观锁(InnoDB,for update) 基于数据库表数据记录做唯一约束(表中记录方法名称) 基于缓存: 使用redis的setnx()用于分布式锁。(setNx,直接设置值为当前时间+超时时间,保持操作原子性) ...
分类:
其他好文 时间:
2019-09-24 15:38:22
阅读次数:
96
MySQL四层分层:(自上往下执行) 连接层:提供预客户端连接的服务。 服务层: 1.提供各种用户使用的接口 2.提供各种sql优化器(mysql如果发现你自己的sql写的太烂,会自动帮你优化) 引擎层: INNODB:事务优先 ( 适合高并发操作,使用的是行锁) MYISAM: 性能有限 (使用的 ...
分类:
数据库 时间:
2019-09-24 13:46:35
阅读次数:
108
如何进行SQL优化? 答:(1)选择正确的存储引擎以 MySQL为例,包括有两个存储引擎 MyISAM 和 InnoDB,每个引擎都有利有弊。MyISAM 适合于一些需要大量查询的应用,但其对于有大量写操作并不是很好。甚至你只是需要update一个字段,整个表都会被锁起来,而别的进程,就算是读进程都 ...
分类:
数据库 时间:
2019-09-24 10:20:41
阅读次数:
87
数据库必备操作 创建表的完整语法 创建表的完整语法 数据库表的引擎 引擎是建表的时候规定的,是提给表用的,而不是数据库 展示所有引擎 引擎 innodb(默认) 支持事事务,行级键,外键 引擎 myisam 查询效率要优于innodb,当不需要innodb的功能时, 可以通过myisam来优化数据库 ...
分类:
数据库 时间:
2019-09-23 22:40:36
阅读次数:
111
一:存储引擎 显示的表的内容尽管是这样子, Mysql并不是以上图形式对表进行的存储, 表有表结构,表数据,他们是分开存储的,分别以单独的文件形式存在,还有索引,索引和数据放一起是一种存储方式,还有不和数据放一起的存储方式 默认存储引擎InnoDB,在数据库文件夹可以看到表明.frm文件就是存放的表 ...
分类:
其他好文 时间:
2019-09-22 11:01:02
阅读次数:
97
数据库存储引擎是数据库底层软件组件,数据库管理系统(DBMS)使用存储引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。现在许多的数据库管理系统都支持多种不同的存储引擎。MySQL的核心就是存储引擎。 使用 ...
分类:
数据库 时间:
2019-09-21 16:53:37
阅读次数:
93
innodb cluster是基于组复制来实现的。 搭建一套MySQL的高可用集群innodb。 实验环境: 组复制的部署: master: server_id = 100 #服务IDgtid_mode = ON #全局事务enforce_gtid_consistency = ON #强制GTID的 ...
分类:
数据库 时间:
2019-09-20 21:09:55
阅读次数:
132
先回答问题,是的。 故事, 如下图,今天查看慢sql发现同事在建索引的时候竟然包含了主键,第一感觉这种姿势不对。 我记得很多文章都说过二级索引会自动带上主键,为什么还有人这么操作,后来差了些资料,如下: https://stackoverflow.com/questions/21996001/sho ...
分类:
数据库 时间:
2019-09-20 16:33:06
阅读次数:
127