实验环境:mysql5.6 存储引擎:innoDB 我们在操作数据库的时候,可能会由于并发问题而引起的数据的不一致性(数据冲突) 乐观锁 乐观锁不是数据库自带的,需要我们自己去实现。乐观锁是指操作数据库时(更新操作),想法很乐观,认为这次的操作不会导致冲突,在操作数据时,并不进行任何其他的特殊处理( ...
分类:
数据库 时间:
2020-01-15 23:11:26
阅读次数:
101
前言 本章介绍行锁的相关知识。行锁偏向InnoDB存储引擎,开销大,加锁慢,会出现死锁,锁定粒度小,发生锁冲突的概率低,但并发度高。 准备 1. 创建表tb_innodb_lock,注意数据库引擎为InnoDB。 CREATE TABLE test_innodb_lock ( a INT (11), ...
分类:
数据库 时间:
2020-01-15 23:01:41
阅读次数:
137
MyISAM是MySQL的默认数据库引擎(5.5版之前)。虽然性能极佳,而且提供了大量的特性,包括全文索引、压缩、空间函数等,但MyISAM不支持事务和行级锁,而且最大的缺陷就是崩溃后无法安全恢复。不过,5.5版本之后,MySQL引入了InnoDB(事务性数据库引擎),MySQL 5.5版本后默认的 ...
分类:
数据库 时间:
2020-01-15 21:24:42
阅读次数:
96
表的引擎有两种 myisam 不支持事务 innodb 支持事务 主要用的三个函数 $pdo->beginTransaction(); //开启一个事务 $pdo->commit(); //提交事务 $pdo->rollback(); //回滚到初始状态 ...
分类:
其他好文 时间:
2020-01-15 13:29:42
阅读次数:
67
目前遇到一个问题,mysql使用source命令导入 *.sql 数据文件时,运行的很慢,大概一秒钟插入个一两百条左右的样子,对于大的文件来说这个太慢了,从其他博主那边搜集了一些方案,简单说就是一句话:SET GLOBAL innodb_flush_log_at_trx_commit = 2; 1. ...
分类:
数据库 时间:
2020-01-15 11:42:11
阅读次数:
119
MySQL InnoDB存储引擎使用MVCC机制来提供一致性非锁定读((consistent nonlocking read)。 假设现在有表TB001,其表结构为: CREATE TABLE `TB001` ( `ID` VARCHAR(20) NOT NULL, `C1` VARCHAR(20) ...
分类:
数据库 时间:
2020-01-13 23:36:38
阅读次数:
166
说到数据库,那就一定会聊到事务,事务也是面试中常问的问题,我们先来一个面试场景:面试官:"事务的四大特性是什么?"我:"ACID,即原子性(Atomicity)、隔离性(Isolation)、持久性(Durability)、一致性(Consistency)!"面试官:"在MySQL数据库的InnoDB引擎是怎么实现这四大特性的?"我:"这个...这个....,还真没有了解过哎"面试官:"那我们就先
分类:
其他好文 时间:
2020-01-13 21:59:57
阅读次数:
123
准备测试环境: MySQL 5.7.28 社区版 CentOS release 6.10 MySQL Undo参数配置: innodb_undo_tablespaces = 1 innodb_default_row_format = dynamic 准备测试数据: ## 创建测试表 CREATE T ...
分类:
数据库 时间:
2020-01-13 20:11:27
阅读次数:
104
后台线程的主要作用是负责刷新内存池中的数据,保证缓存中的内存缓存的是最近的数据。此外将已修改的数据文件刷新到磁盘文件,同时保证在数据库发生异常的情况下InnoDB能恢复到正常运行状态。 InnoDB存储引擎是多线程的模型,有多个不同的后台线程,负责处理不同的任务。 mysql> show varia ...
分类:
数据库 时间:
2020-01-13 18:02:52
阅读次数:
122
B+树,它是一种非常适合用来做数据库索引的数据结构:(1)很适合磁盘存储,能够充分利用局部性原理,磁盘预读;(2)很低的树高度,能够存储大量数据;(3)索引本身占用的内存很小;(4)能够很好的支持单点查询,范围查询,有序性查询;数据库的索引分为主键索引(PrimaryInkex)与普通索引(SecondaryIndex)。InnoDB和MyISAM是怎么利用B+树来实现这两类索引,其又有什么差异呢
分类:
数据库 时间:
2020-01-13 00:54:56
阅读次数:
97