随笔分类 - Mysql数据库大总结
各类大厂面试题 或者各类经验总结。
帮助各位小伙伴们轻松搞定MySQL相关面试
nice !
摘要:先讲一个最典型的案例慢慢说明本节内容: 假设你在维护一个市民系统,每个人都有一个唯一的身份证号,而且业务代码已经保证了不会写入两个重复的身份证号。如果市民系统需要按照身份证号查姓名,就会执行类似这样的 SQL 语句: select name from CUser where id_card = 'X
阅读全文
摘要:什么是长事务 首先我们先要知道什么是长事务,顾名思义就是运行时间比较长,长时间未提交的事务,也可以称之为大事务。这类事务往往会造成大量的阻塞和锁超时,容易造成主从延迟,要尽量避免使用长事务。
阅读全文
摘要:哎 开发人员需要懂得Mysql太多太多了 那么什么是视图呢? 视图是基于 SQL 语句的结果集的可视化的表,即视图是一个虚拟存在的表,可以包含表的全部或者部分记录,也可以由一个表或者多个表来创建。使用视图就可以不用看到数据表中的所有数据,而是只想得到所需的数据。当我们创建一个视图的时候,实际上是在数
阅读全文
摘要:什么是Binlog日志? binlog是记录所有数据库表结构变更(例如CREATE、ALTER TABLE…)以及表数据修改(INSERT、UPDATE、DELETE…)的二进制日志。 binlog不会记录SELECT和SHOW这类操作,因为这类操作对数据本身并没有修改,但你可以通过查询通用日志来查
阅读全文
摘要:什么是短连接? 短连接是指程序和数据库通信时需要建立连接,执行操作后,连接关闭。短连接简单来说就是每一次操作数据库,都要打开和关闭数据库连接,基本步骤是:连接 →数据传输 →关闭连接。 什么是长连接? 长连接是指程序之间的连接在建立之后,就一直打开,被后续程序重用。使用长连接的初衷是减少连接的开销,
阅读全文
摘要:什么是悲观锁 在关系数据库管理系统中,悲观并发控制(悲观锁,PCC)是一种并发控制的方法。它可以阻止一个事务以影响其他用户的方式来修改数据。如果一个事务执行的操作的每行数据应用了锁,那只有当这个事务锁释放,其他事务才能够执行与该锁冲突的操作 悲观并发控制主要应用于数据争用激烈的环境,以及发生并发冲突
阅读全文
摘要:已经连续被问过2次了......... 在此简单讲: MySQL 中有四种事务隔离级别,它们分别是: read uncommited:未提交读,读到未提交数据; read committed:读已提交,也叫不可重复读,两次读取到的数据不一致; repetable read:可重复读; seriali
阅读全文
摘要:哎~ 这都算是最最简单的问题了 事务是什么? 事务是一系列的数据库操作,是数据库应用的基本单位。MySQL 事务主要用于处理操作量大,复杂度高的数据。 事务有哪些特性? 在 MySQL 中只有 InnDB 引擎支持事务,它的四个特性如下: 原子性(Atomic):要么全部执行,要么全部不执行; 一致
阅读全文
摘要:灵魂3连问: 什么是前缀索引? 前缀索引也叫局部索引,比如给身份证的前 10 位添加索引,类似这种给某列部分信息添加索引的方式叫做前缀索引。 为什么要用前缀索引? 前缀索引能有效减小索引文件的大小,让每个索引页可以保存更多的索引值,从而提高了索引查询的速度。但前缀索引也有它的缺点,不能在 order
阅读全文
摘要:又是重复的简单来说: 联合索引又叫复合索引,MySQL 中的联合索引,遵循最左匹配原则,比如,联合索引为 key(a,b,c),则能触发索引的搜索组合是 a|ab|abc 这三种查询。 联合索引的作用是什么? 联合索引的作用如下: 用于多字段查询,比如,建了一个 key(a,b,c) 的联合索引,那
阅读全文
摘要:MySQL 的索引有两种分类方式:逻辑分类和物理分类。 按照逻辑分类,索引可分为: 主键索引:一张表只能有一个主键索引,不允许重复、不允许为 NULL; 唯一索引:数据列不允许重复,允许为 NULL 值,一张表可有多个唯一索引,但是一个唯一索引只能包含一列,比如身份证号码、卡号等都可以作为唯一索引;
阅读全文
摘要:要说回表查询,先要从InnoDB的索引实现说起。InnoDB有两大类索引,一类是聚集索引(Clustered Index),一类是普通索引(Secondary Index)。 InnoDB的聚集索引 InnoDB聚集索引的叶子节点存储行记录,因此InnoDB必须要有且只有一个聚集索引。 1.如果表定
阅读全文
摘要:简介: count()函数用来统计表的行数,也就是统计记录行数,很好理解的,但面试你这么说就有点单薄了。 count()函数具体情况下的各种分析: 各类面试题总结了一下,应该遇到的话不会怕了: 1)为什么 InnoDB 不把总条数记录下来,查询的时候直接返回呢? 因为 InnoDB 使用了事务实现,
阅读全文
摘要:再简单来讲: MySQL 中支持两种模糊查询:regexp 和 like,like 是对任意多字符匹配或任意单字符进行模糊匹配,而 regexp 则支持正则表达式的匹配方式,提供比 like 更多的匹配方式。 regexp 和 like 的使用示例如下: select * from person w
阅读全文
摘要:简单点来讲: 在 MySQL 的命令行中使用 show processlist; 查看所有连接,其中 Command 列显示为 Sleep 的表示空闲连接,如下图所示: 哎 真是面试官什么都问。 绝对是看你了解的广度了。
阅读全文
摘要:简单点来讲,总是开篇简单讲,其实有的面试简单说一下就够啦,其实面试官就问你一下了解不了解。 覆盖索引是指,索引上的信息足够满足查询请求,不需要再回到主键上去取数据。 下面详细的讲一下: 覆盖索引必须要存储索引列的值,而哈希索引、空间索引和全文索引不存储索引列的值,所以mysql只能用B-tree索引
阅读全文
摘要:简单点来说: 共享表空间:指的是数据库的所有的表数据,索引文件全部放在一个文件中,默认这个共享表空间的文件路径在 data 目录下。 独立表空间:每一个表都将会生成以独立的文件方式来进行存储。 共享表空间和独立表空间最大的区别是如果把表放再共享表空间,即使表删除了空间也不会删除,所以表依然很大,而独
阅读全文
摘要:额,这里我们先来简单地聊一下: InnoDB 和 MyISAM 最大的区别是 InnoDB 支持事务,而 MyISAM 不支持事务,它们主要区别如下: 1)InnoDB 支持崩溃后安全恢复,MyISAM 不支持崩溃后安全恢复; 2)InnoDB 支持行级锁,MyISAM 不支持行级锁,只支持到表锁;
阅读全文
摘要:先来个最基本的总结阐述,希望各位小伙伴认真的读一下,哈哈: 1)客户端(运行程序)先通过连接器连接到MySql服务器。 2)连接器通过数据库权限身份验证后,会先查询数据库缓存是否存在(之前执行过相同条件的SQL查询),如果有会直接返回缓存中的数据。如果没有则会进入分析器。 3)进入分析器后会对查询语
阅读全文

浙公网安备 33010602011771号