
面试题-数据库
文章平均质量分 69
面试题-数据库
啥也不懂的派大星
这个作者很懒,什么都没留下…
展开
-
MySql学习之慢SQL优化和慢SQL案例
慢查询日志记录慢SQLexplain查看分析SQL的执行计划profile分析执行耗时Optimizer Trace分析详情确定慢SQL问题并采用相应的方案隐式转换、最左匹配、深分页问题、in元素过多、order by 走文件排序、索引字段上使用(!= 或者 < >)索引字段上使用is null, is not null,索引可能失效、左右连接,关联的字段的编码格式不一样 、group by使用临时表、delete + in子查询不走索引、其它索引失效场景,如like '%xxx'原创 2022-11-12 22:31:50 · 2796 阅读 · 0 评论 -
MySQL索引基本原理 聚簇和非聚簇区别 数据结构 设计原则
MySQL索引基本原理 聚簇和非聚簇区别 数据结构 设计原则原创 2023-01-17 14:21:40 · 710 阅读 · 0 评论 -
MySQL锁的类型 事务的基本特性和隔离级别 ACID靠什么保证 什么是MVCC 主从同步原理 MyISAM和InnoDB的区别 索引类型及影响 执行计划怎么看 慢查询优化
MySQL锁的类型 事务的基本特性和隔离级别 ACID靠什么保证 什么是MVCC 主从同步原理 MyISAM和InnoDB的区别 索引类型及影响 执行计划怎么看 慢查询优化原创 2023-01-17 16:28:55 · 280 阅读 · 0 评论 -
分布式id生成方案,如何实现分库分表
UUID数据库自增序列雪花算法基于redis、mongodb、zk等中间件生成Leaf-segment如何实现分库分表原创 2023-02-07 14:35:10 · 1149 阅读 · 0 评论 -
DB常用的聚合函数有哪些及作用?
count(*) sum avg max min基本使用语法:select max(age) from t_student;select min(age) from t_student;聚合函数经常会结合分组查询,出现在众多的SQL笔试题中原创 2021-04-14 10:40:33 · 217 阅读 · 0 评论 -
MyBatis-一级缓存到二级缓存,XML映射文件都有哪些标签
MyBatis-缓存机制,从一级缓存到二级缓存一级缓存,默认开启,作用域是一个SQLsession,如果中间有对数据更新则会清空。二级缓存,手动开启,作用域是一个namespace,一个mapper,配置文件中<setting name="cacheEnabled" value="true"/>在标签< mapper >下面添加< cache/>标签即可;新增,修改,删除语句会清空缓存。采取LRU算法,最近最少使用 算法会缓存1024个对象的引用 存在BU原创 2021-04-15 09:17:46 · 208 阅读 · 0 评论 -
MyBatis跟Hibernate的区别?mybatis的优缺点?什么样的数据适合缓存?
Hibernate功能强大,数据库无关性好,O/R映射能力强,如果你对Hibernate相当精通,而且对Hibernate进行了适当的封装,那么你的项目整个持久层代码会相当简单,需要写的代码很少,开发速度很快,非常爽。iBATIS入门简单,即学即用,提供了数据库查询的自动对象绑定功能,而且延续了很好的SQL使用经验,对于没有那么高的对象模型要求的项目来说,相当完美。MyBatis的二级缓存配置都是在每个具体的表-对象映射中进行详细配置,这样针对不同的表可以自定义不同的缓存机制。并且Mybatis可以在。原创 2021-04-15 09:17:01 · 316 阅读 · 0 评论 -
数据库表设计的三范式及反三范式
三范式?第一范式:最基本的范式,每列保持原子性,每列不可分第二范式:要有主键,每列都和主键相关第三范式:每列都和主键直接相关,不可存在传递依赖。三个特点:每列只有一个值;每一列都不可分;每张表不包含其他表已包含的非主键的字段。比如商品表里面关联商品类别表,那么只需要一个关联字段product_type_id即可,其他字段信息可以通过表关联查询即可。得到如果商品表还存在一个商品类别名称字段,如product_type_name,那就属于存在传递依赖的情况,第三范式主要是从空间的角度来考虑,避免产原创 2021-04-11 19:09:29 · 734 阅读 · 0 评论 -
如何解决SQL注入?MyBatis如何解决了SQL注入的问题?#和$的差异?
1,SQL注入,是指通过字符串拼接的方式构成了一种特殊的查询语句比如:select * from t_user where usename=’’ and password=’’’ or 1=1 #select * from t_user where usename=’’ or 1=1 # ’ and password=’’2,解决方案采用预处理对象,采用PreparedStatement对象,而不是Statement对象,可以解决SQL注入的问题另外也可以提高执行效率,因为是预先编译执行SQL原创 2021-04-12 09:19:23 · 520 阅读 · 0 评论 -
JDBC如何实现对事务的控制及事务边界
JDBC对事务的操作是基于Connection来进行控制的,具体代码如下:try { //开启事务 connection.setAutoCommit(false); //做业务操作 //doSomething(); //提交事务 connection.commit();}catch(Exception e){ //回滚事务 try { connection.rollback(); } catch (SQLException e1) {原创 2021-04-12 09:19:43 · 395 阅读 · 0 评论 -
MySQL事务基础知识
MySQL事务基础知识笔记整理。事务的特性,事务的状态变化?如何使用事务?事务的隔离级别?各个隔离级别使用距离。原创 2022-11-20 21:04:00 · 381 阅读 · 0 评论 -
MySQL事务日志
MySQL事务日志,rodo log 和 undo log详解,DML操作的执行过程。原创 2022-11-26 21:59:26 · 327 阅读 · 0 评论 -
MyBatis有哪些分页方式及原理?MySql分页?Oracle分页? Mybatis 的插件运行原理?
MyBatis有哪些分页方式?正常人,一般使用物理分页。分为逻辑分页和物理分页所谓逻辑分页,是指使用MyBatis自带的RowBounds进行分页,它会一次性查出多条数据,然后再检索分页中的数据,具体一次性查询多少条数据,受封装jdbc配置的fetch-size决定而物理分页,是从数据库中查询指定条数的数据,而我们用的分页插件PageHelper实现的就是物理分页MySQL分页limit(m,n) m下标 n条数主键索引加limt where id_pk > x limt nOra原创 2021-04-15 09:20:12 · 545 阅读 · 0 评论