打怪升级之Mysql秋招实习面试题
文章平均质量分 58
总结实习、秋招过程中被经常问到的mysql 面试题,主打一个实用
小吴同学GOGOGO
一只怀揣梦想的阿柴;五角场某高校同学、某大厂打工人;兴趣方向:OLAP基础架构、大数据存储和计算引擎;「计算机小屋」
展开
-
【mysql】MySQL的binlog在数据仓库中的应用
MySQL的binlog是MySQL服务器生成的一种日志文件,记录了所有的数据库操作,包括INSERT、UPDATE、DELETE等操作。这些操作以事件的形式存储在binlog中。binlog是MySQL实现复制、恢复、审计等功能的基石。MySQL的binlog在数据仓库中具有广泛的应用价值。通过使用binlog,可以实现数据复制和同步、数据审计和监控、数据恢复和备份等功能。同时,也可以对binlog进行读取和处理,以提取出其中的事件,并应用到数据仓库中进行进一步的数据分析和挖掘。原创 2023-12-21 15:14:31 · 1457 阅读 · 0 评论 -
【mysql】MySql中死锁是什么?怎么解决?
在这种情况下,用户 A 持有了账户 X 的锁并等待用户 B 释放账户 Y 的锁,而用户 B 持有了账户 Y 的锁并等待用户 A 释放账户 X 的锁。优化事务顺序:在应用程序中,可以约定所有用户按照相同的顺序访问账户,例如按照账户的 ID 升序进行访问。一次性锁定所有需要的资源:在这个例子中,可以使用一个更大的锁,一次性锁定账户 X 和账户 Y。设置合理的超时时间:在事务等待锁定资源时,可以设置合理的超时时间,超过该时间则自动回滚事务,避免长时间的阻塞。限制事务的持续时间:长时间运行的事务增加了死锁的风险。原创 2023-12-20 12:02:06 · 344 阅读 · 0 评论 -
【mysql】 mysql什么情况下不走索引,会发生索引失效?
如果表中有太多的索引或者索引的大小超过了MySQL的限制,可能会导致索引失效。过多或过大的索引会增加查询的成本,并且可能导致MySQL选择不使用索引。某些特殊类型的索引,如全文索引或空间索引,可能在某些查询条件下无法使用。由于通配符开头的模式无法使用B-tree索引进行高效匹配,MySQL可能无法使用索引,而需要执行全表扫描。由于函数应用于索引列,MySQL无法直接使用索引进行匹配,而是需要对每一行应用函数,然后再进行比较。当查询条件中的数据类型与索引列的数据类型不匹配时,MySQL可能无法使用索引。原创 2023-12-19 18:15:18 · 247 阅读 · 0 评论 -
【mysql】ACID靠什么保证的呢?
通俗的讲,数据库中同时存在多个版本的数据,并不是整个数据库的多个版本,而是某一条记录的多个版本同时存在,在某个事务对其进行操作的时候,需要查看这一条记录的隐藏列事务版本id,比对事务id并根据事物隔离级别去判断读取哪个版本的数据。我们在进行数据更新操作的时候,不仅会记录redo log,还会记录undo log,如果因为某些原因导致事务回滚,那么这个时候MySQL就要执行回滚(rollback)操作,利用undo log将数据恢复到事务开始之前的状态。—修改之前name=张三。**什么时候刷盘呢?原创 2023-12-14 21:24:35 · 520 阅读 · 0 评论 -
【mysql】事务的基本特性和隔离级别?
用户本来应该读取到id=1的用户age应该是10,结果读取到了其他事务还没有提交的事务,结果读取结果age=20,这就是脏读。举例说明:张三向李四转100元,转账前和转账后的数据是正确的状态,这就叫一致性,如果出现张三转出100元,李四账号没有增加100元这就出现了数据错误,就没有达到一致性。事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。,一般是不会使用的,他会给每一行读取的数据加锁,会导致大量超时和锁竞争的问题。原创 2023-12-14 21:10:24 · 133 阅读 · 0 评论 -
【mysql】锁的类型有哪些呢?
根据数据的访问级别来区分:从颗粒度来区分,可以分为表锁和行锁两种:原创 2023-12-14 21:04:49 · 120 阅读 · 0 评论 -
【mysql】mysql的索引有哪些?聚簇索引和非聚簇索引又是个啥?
mysql的聚簇索引和非聚簇索引的区别?原创 2023-12-14 20:52:50 · 93 阅读 · 0 评论 -
【mysql】覆盖索引和回表是啥?
0 回答 覆盖索引指的是在一次查询中,如果一个索引包含或者说覆盖所有需要查询的字段的值,我们就称之为覆盖索引,而不再需要回表查询。 回表查询:根据数据库行的具体地址来找到对应行数据,一般在非聚簇索引中需要回表查询 如何确定一个查询是否是覆盖索引? 而要确定一个查询是否是覆盖索引,我们只需要explain sql语句看Extra的结果是否是“Using index”即可。原创 2023-12-14 21:00:51 · 65 阅读 · 0 评论 -
【Mysql】myisam和innodb的区别?
【mysql】myisam和innodb的区别原创 2023-12-14 20:27:01 · 551 阅读 · 0 评论