这里是参考B站上的大佬做的面试题笔记.大家也可以去看视频讲解!!! 文章目录 1 .mysql索引结构,各自的优劣 2 .索引的设计原则 3 .mysql锁的类型有哪些 4 .mysql执行计划怎么看 5 .事务的基本特性和隔离级别 1 .mysql索引结构,各自的优劣 索引的数据的数据结构和具体存储引擎的实现有关,在MySQL中使用较多的索引有hash索引,B+树索引等,innoDB存储引擎的默认索引实现为:B+树索引.对于哈希索引来说,底层的数据结构就是哈希表,因此在绝大多数需求为单条记录查…
本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响. ⑵ 一致性(Consistency) 一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执…
这里是参考B站上的大佬做的面试题笔记.大家也可以去看视频讲解!!! 文章目录 1.分布式架构下,Session共享有什么方案 2.简述你对RPC.RMI的理解 3.分布式id生成方案 4.分布式锁解决方案 5.分布式事务解决方案 1.分布式架构下,Session共享有什么方案 1.采用无服务状态,抛弃session 2.存入cookie(有安全风险) 3.服务器之间进行session同步,这样可以保证每个服务器上都有全部的session信息,不过当服务器数量比较多的时候,同步是会有延迟甚至同步失…
这里是参考B站上的大佬做的面试题笔记.大家也可以去看视频讲解!!! 文章目录 1.怎么处理慢查询 2.ACID靠什么保证的 3.什么是MVCC 4.mysql主从同步原理 5.简述Myisam和innodb的区别 1.怎么处理慢查询 关心过业务系统里面的sql耗时吗?统计过慢查询吗?对慢查询都怎么优化过? 在业务系统中,除了使用主键进行的查询,其他的都会在测试库上测试其耗时,慢查询的统计主要由运维在做,会定期将业务中的慢查询反馈给我们. 慢查询的优化首先要搞明白慢的原因是什么? 是查询条件没有名…
今天分享的这道面试题,让一个工作4年的小伙子去大众点评拿了60W年薪. 这道面试题是: "请你说一下Mysql索引的优点和缺点" 关于这道题,看看普通人和高手的回答 普通人: 嗯......... 高手: 索引,是一种能够帮助Mysql高效从磁盘上检索数据的一种数据结构. 在Mysql中的InnoDB引擎中,采用了B+树的结构来实现索引和数据的存储 在我看来,Mysql里面的索引的优点有很多 通过B+树的结构来存储数据,可以大大减少数据检索时的磁盘IO次数,从而提升数据查询的性能 B+…
这里是参考B站上的大佬做的面试题笔记.大家也可以去看视频讲解!!! 文章目录 1.简述Redis事务实现 2.redis集群方案 3.redis主从复制的核心原理 4.CAP理论,BASE理论 5.负载均衡算法.类型 1.简述Redis事务实现 1.事务开始 MULTI命令的执行,标识着一个事务的开始.MULTI命令会将客户端状态的flag属性中打开REDIS_MULTI标识来完成的. 2.命令入队 当一个客户端切换到事务状态后,服务器会根据这个客户端发送来的命令来执行不同的操作.如果客户端发送…
这里是参考B站上的大佬做的面试题笔记.大家也可以去看视频讲解!!! 文章目录 1.mybatis和hibernate的对比 2 .#{}和${}的区别 3 .mybatis插件运行原理及开发流程 4 .索引的基本原理 5 .mysql聚簇和非聚簇索引的区别 1.mybatis和hibernate的对比 面向对象 SQL和ORM的争论,永远都不会终止 开发速度的对比: Hibernate的真正掌握要比Mybatis难些.Mybatis框架相对简单容易上手,但也相对简陋些. 比起两者的开发速度,不仅…
这里是参考B站上的大佬做的面试题笔记.大家也可以去看视频讲解!!! 文章目录 1.简述MySQL中索引类型对数据库的性能的影响 2.RDB和AOF机制 3.Redis的过期键的删除策略 4.Redis线程模型,单线程为什么这么快 5.缓存雪崩.缓存穿透.缓存击穿 1.简述MySQL中索引类型对数据库的性能的影响 普通索引:允许被索引的数据列包含重复的数据 唯一索引:可以保证数据记录的唯一性 主键:是一种特殊的唯一索引,在一张表中只能定义一个主键索引,主键用于唯一标识一条记录,使用关键字prima…
一.建立适当的索引 说起提高数据库性能,索引是最物美价廉的东西了.不用加内存,不用改程序,不用调sql,只要执行个正确的'create index',查询速度就可能提高百倍千倍,这可真有诱惑力.可是天下没有免费的午餐,查询速度的提高是以插入.更新.删除的速度为代价的,这些写操作, 增加了大量的I/O. 是不是建立一个索引就能解决所有的问题?ename上没有建立索引会怎样? select * from emp where ename='研发部'; ---测试案例命令如下 (最好以 select *…
.myisam,bdb,innodb,memory 单表至少支持16个索引 .create index id_index on emp (id) 为emp表创建一个名为id_index的id字段的索引 .drop index id_index on emp 删除emp表的id_index 索引 .explain xxxxxxx,可以查看相关的执行结果,用于优化表用 .最合适的索引列是“条件列”,而不是“选择列” 比如 ; 那么最好是在year字段上创建索引,而不是name字段 .使用索引的字段,…