导图社区 java面试题
这是一篇关于java面试题的思维导图,涵盖MySQL的查询优化、存储引擎(如B+树)、事务的ACID特性以及InnoDB的MVCC机制等内容。
本图汇总了 java基础、商城登录模块、mysql、spring全家桶、MQ、Redis、多线程、java锁、JVM、HashMap、dobbo等知识,可供参考。
社区模板帮助中心,点此进入>>
互联网9大思维
电商部人员工作结构
电费水费思维导图
D服务费结算
组织架构-单商户商城webAPP 思维导图。
博弈的理解与运用
域控上线
第三章 外国行政组织理论
培训计划思维导图
车队管理
java面试题
mysql
like模糊查询
可以在查询得过程过程中添加一些时间约束条件来加快查询效率
还可以使用反向索引,就是这个百分他加到前面会导致索引失效,可以新建立一个他得反向字段比如说uesrName改成emaNrseu这样来匹配就可以达到like得左模糊查询
深度分页优化
可以使用子查询来进行优化,只查出来当前页面上得id然后关联主表进行返回
B树和B+树得区别
B+树
mysql为啥使用了b+树
红黑树
红黑树得数据结构又叫平衡二叉树他在新增6个索引后他本身得结构会遵从左小右大得原则然后发生自旋,如果索引过多得话会导致形成一个比较长得链表然后导致不可控
二叉树
如果有一列数据1-6加完索引后他使用得数据结构是二叉树得话,他会形成一个链表还是会进行6此io操作如果数据量大得话这样io会更慢
B树
B树和红黑树得区别B树得是在每个节点开辟了一个16kb得一个空间,但是他得每个节点都在存放了索引和他的地址值,没有做出向下指针得得一个操作,假设一个索引和他得数据大小为1kb就是一个节点只能存放16个索引,这样得话他得io会比较慢
mysql最终使用得是B+树,他在B树上面做出了一些优化,他把所有得索引都放在了叶子节点,他得根节点大小是16kb,在叶子节点得地方会存放他得索引和他得磁盘地址,所有得字节点都会引用父节点得冗余,在查询得时候他会先把根节点得索引加载到内存当中去比对,中间得话他会在内存中进行一个折半查找这样得话就会减少磁盘得io
mysqlk的ACID
原子性
原子性指的是整个数据库的事务是不可分割的工作单位,只有事务中的整个数据库操作都执行成功后,整个事务的执行才算成功,事务中的任何一个sql执行失败都会那么以经执行成功的sql必须回滚到执行事务之前的状态
可以在ondolong日志查看他记录了需要回滚撤销成功的的日志信息,
一致性
指的是在事务开始之前和事务结束之后,事务的前后总额保持一致
隔离性
事务的隔离性指的是读写的事务要与其他事务操作的对象进行隔离
持久性
事务一旦被提交,其结果就是永久性的,保证了系统的一个搞可靠性
innoDB的MVCC
他默认的隔离级别是可重复读,可重复解决幻读。最大优点就是读不加锁因此读写不冲突,并发性能好
脏读,幻读,不可重复度
脏读:一个事务读取了另一个事务未提交的数据
不可重复读:
事务两次读取的数据不一致,读取第二次之前可能有其他事务修改了这个数据并提交了
幻读
指的是一个事务在前后两次查询同一个范围的时侯,后一次查询看到了前一次拆线呢没有看到的行
SpringBoot
主题