想进大厂,mysql不会那可不行,来接受mysql面试挑战吧,看看你能坚持到哪里? 1. 能说下myisam 和 innodb的区别吗? myisam引擎是5.1版本之前的默认引擎,支持全文检索、压缩、空间函数等,但是不支持事务和行级锁,所以一般用于有大量查询少量插入的场景来使用,而且myisam不 ...
分类:
数据库 时间:
2020-11-18 13:16:01
阅读次数:
18
目标: 掌握Mysql的各组件及各组件的功能 理解Mysql简版执行流程和详细执行流程 掌握MyIsam和InnoDB的区别并说明使用场景 掌握Mysql日志文件及主要日志文件的作用 理解Mysql的数据文件及作用 使用命令查看mysql日志 配置my.cnf开启二进制日志、通用查询日志、慢查询日志 ...
分类:
数据库 时间:
2020-11-18 12:29:29
阅读次数:
15
一、基础规范表存储引擎必须使用InnoDB表字符集默认使用utf8,必要时候使用utf8mb4解读:(1)通用,无乱码风险,汉字3字节,英文1字节(2)utf8mb4是utf8的超集,有存储4字节例如表情符号时,使用它禁止使用存储过程,视图,触发器,Event解读:(1)对数据库性能影响较大,互联网业务,能让站点层和服务层干的事情,不要交到数据库层(2)调试,排错,迁移都比较困难,扩展性较差禁止在
分类:
数据库 时间:
2020-11-17 12:55:07
阅读次数:
14
近一个多月,写了一些MySQL内核的文字,稍作总结,希望对大家有帮助。1.《InnoDB,为何并发如此之高?》文章介绍了:(1)什么是并发控制;(2)并发控制的常见方法:锁,数据多版本;(3)redo,undo,回滚段的实践;(4)InnoDB如何利用回滚段实现MVCC,实现快照读。结论是,快照读(SnapshotRead),这种不加锁的读,是InnoDB高并发的核心原因之一。番外篇:《快照读,在
分类:
数据库 时间:
2020-11-17 12:10:05
阅读次数:
12
今天和大家简单聊聊MySQL的约束主键与唯一索引约束:PRIMARYKEYandUNIQUEIndexConstraints文章不长,保证有收获。触发约束检测的时机:insertupdate当检测到违反约束时,不同存储引擎的处理动作是不一样的。如果存储引擎支持事务,SQL会自动回滚。例子:createtablet1(idint(10)primarykey)engine=innodb;inserti
分类:
数据库 时间:
2020-11-17 12:08:09
阅读次数:
15
近期写了不少InnoDB锁相关的文章,不少小伙伴问,如何在MySQL终端模拟并发事务,如何复现之前文章中的案例。今天,咱们一起动起手来,模拟并发事务的互斥与死锁。【事前准备】安装MySQL服务端安装MySQL客户端安装能够模拟多个并发事务的终端画外音:楼主使用的是MySQL5.6,官方客户端mysql,模拟并发终端用的SecureCRT。【配置的确认与修改】要测试InnoDB的锁互斥,以及死锁,有
分类:
数据库 时间:
2020-11-17 12:07:49
阅读次数:
11
昨天挖了一个坑《InnoDB的快照读,到底和什么相关?》,今天来填坑。为了保证文章知识体系的完整性,先简单解释下快照读,读提交,可重复读。快照读(SnapshotRead)MySQL数据库,InnoDB存储引擎,为了提高并发,使用MVCC机制,在并发事务时,通过读取数据行的历史数据版本,不加锁,来提高并发的一种不加锁一致性读(ConsistentNonlockingRead)。读提交(ReadCo
分类:
数据库 时间:
2020-11-17 12:07:32
阅读次数:
8
事务ACID特性,其中I代表隔离性(Isolation)。什么是事务的隔离性?隔离性是指,多个用户的并发事务访问同一个数据库时,一个用户的事务不应该被其他用户的事务干扰,多个并发事务之间要相互隔离。一个事务怎么会干扰其他事务呢?咱们举例子来说明,假设有InnoDB表:t(idPK,name);表中有三条记录:1,shenjian2,zhangsan3,lisicase1事务A,先执行,处于未提交的
分类:
数据库 时间:
2020-11-17 12:05:39
阅读次数:
10
《数据库索引,到底是什么做的?》介绍了B+树,它是一种非常适合用来做数据库索引的数据结构:(1)很适合磁盘存储,能够充分利用局部性原理,磁盘预读;(2)很低的树高度,能够存储大量数据;(3)索引本身占用的内存很小;(4)能够很好的支持单点查询,范围查询,有序性查询;数据库的索引分为主键索引(PrimaryInkex)与普通索引(SecondaryIndex)。InnoDB和MyISAM是怎么利用B
分类:
数据库 时间:
2020-11-17 12:04:36
阅读次数:
11
MySQL的InnoDB的细粒度行锁,是它最吸引人的特性之一。但是,如《InnoDB,5项最佳实践》所述,如果查询没有命中索引,也将退化为表锁。InnoDB的细粒度锁,是实现在索引记录上的。一,InnoDB的索引InnoDB的索引有两类索引,聚集索引(ClusteredIndex)与普通索引(SecondaryIndex)。InnoDB的每一个表都会有聚集索引:(1)如果表定义了PK,则PK就是聚
分类:
数据库 时间:
2020-11-17 12:04:17
阅读次数:
11