MySQL面试常用知识点
文章平均质量分 56
介绍MySQL面试常用知识点
风清扬,夏邑
学无止境
展开
-
MySQL常见面试题汇总
但是如果项目中没有这种运维的监控系统,其实在MySQL中也提供了慢日志查询的功能,可以在MySQL的系统配置文件中开启这个慢日志的功能,并且也可以设置SQL执行超过多少时间来记录到一个日志文件中,我记得上一个项目配置的是2秒,只要SQL执行的时间超过了2秒就会记录到日志文件中,我们就可以在日志文件找到执行比较慢的SQL了。覆盖索引是指select查询语句使用了索引,在返回的列,必须在索引中全部能够找到,如果我们使用id查询,它会直接走聚集索引查询,一次索引扫描,直接返回数据,性能高。原创 2024-07-23 12:21:13 · 350 阅读 · 0 评论 -
MySQL分库分表
:原创 2024-07-16 20:32:47 · 149 阅读 · 0 评论 -
MySQL主从同步
MySQL主从复制的核心就是二进制日志,二进制日志(BINLOG)记录了所有的 DDL(数据定义语言)语句和 DML(数据操纵语言)语句,但不包括数据查询(SELECT、SHOW)语句。(3)大部分系统,访问模型几乎都是读多写少的情况,可以部署一主多从的数据库架构,主库处理写请求,从库处理读请求。(2)从库读取主库的二进制日志文件 Binlog,写入到从库的中继日志 Relay Log。(1)可以提高MySQL的高可用性,当主库出现问题,可以快速切换到从库来提供服务。原创 2024-07-16 20:30:49 · 123 阅读 · 0 评论 -
MVCC实现原理
回滚日志,在insert、update、delete的时候产生的便于数据回滚的日志。当insert的时候,产生的undo log日志只在回滚时需要,在事务提交后,可被立即删除。而update、delete的时候,产生的undo log日志不仅在回滚时需要,mvcc版本访问也需要,不会立即被删除。不同事务或相同事务对同一条记录进行修改,会导致该记录的undolog生成一条记录版本链表,链表的头部是最新的旧记录,链表尾部是最早的旧记录。原创 2024-07-16 20:29:53 · 203 阅读 · 0 评论 -
事务中的隔离性如何保证?(解释一下MVCC)
事务的隔离性是由锁和mvcc实现的。其中mvcc的意思是多版本并发控制。指维护一个数据的多个版本,使得读写操作没有冲突,它的底层实现主要是分为了三个部分,第一个是。原创 2024-07-16 20:26:55 · 128 阅读 · 0 评论 -
MySQL中的事务
当一个事务对数据进行修改时,数据库会生成 undo log 条目,记录被修改数据的原始状态。事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。一个事务读取了几行数据,之后另一个事务插入了一些数据,这使得前一个事务再次读取时会发现有新的“幻影”行。在一个事务内多次读取同一条记录,每次读取结果不同,因为其他事务在此期间修改了这条记录。保证了事务的原子性和一致性,redo log保证了事务的持久性。原创 2024-07-16 20:24:39 · 489 阅读 · 0 评论 -
SQL优化
SQL优化在项目中很常见,主要从五个方面考虑:建表的时候、使用索引、sql语句的编写、主从复制,读写分离,还有一个是如果量比较大的话,可以考虑分库分表。如果数据库的使用场景读的操作比较多的时候,为了避免写的操作所造成的性能影响 可以采用读写分离的架构。读写分离解决的是:数据库的写入,影响了查询的效率。原创 2024-07-16 20:21:00 · 132 阅读 · 0 评论 -
MySQL索引重要知识点
索引在项目中是比较常见的,它是帮助MySQL高效获取数据的数据结构,主要是用来提高数据检索的效率,降低数据库的I0成本,同时通过索引列对数据进行排序,降低数据排序的成本,也能降低了CPU的消耗。先分页查询数据的id字段,确定了id之后,再用子查询来过滤,只查询这个id列表中的数据就可以,因为查询id的时候,走的覆盖索引,一次索引扫描,直接返回数据,所以效率可以提升很多。来创建,一条sql的返回值,尽量使用覆盖索引,如果字段的区分度不高的话,我们也会把它放在组合索引后面的字段。原创 2024-07-16 16:46:55 · 1016 阅读 · 0 评论 -
MySQL存储引擎有哪些?有什么区别?
存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。InnoDB存储引擎的特点。原创 2024-07-16 14:04:17 · 204 阅读 · 0 评论 -
MySQL中,如何定位慢查询
如果,项目中没有这种运维的监控系统,其实在MySOL中也提供了慢日志查询的功能,可以在MySOL的系统配置文件中开启这个慢日志的功能,并且也可以设置SQL执行超过多少时间来记录到一个日志文件中,我记得上一个项目配置的是2秒,只要SQL执行的时间超过了2秒就会记录到日志文件中,我们就可以在日志文件找到执行比较慢的SOL了。配置完毕之后,通过以下指令重新启动MySQL服务器进行测试,查看慢日志文件中记录的信息 /var/lib/mysql/localhost-slow.log。原创 2024-07-16 14:00:29 · 190 阅读 · 0 评论