Java-MySql

数据库的三范式是什么

范式简介
第一范式数据库的每个字段(每一列)不可拆分,具有原子行
第二范式满足第一范式,非主键字段必须依赖主键
第三范式满足第二范式,非主键字段只能依赖主键

一张表里面有7条数据,删除最后两条数据,重启mysql,再插入一条数据,该数据id是多少?

数据库表类型id值原因
MyIASM8该类型会持久化最大id
InnoDB5该类型不会持久化最大id,只会在内存中保存

如何获取当前数据库版本

select version();

说一下ACID是什么

事务须遵循的特性简介
Atomicity:原子性事务中的所有操作,要么全部成功,要么全部失败,并且失败后要能够恢复原始状态,就像没发生过一样
Consistency: 一致性事务的操作符合所有约束,不会破坏数据库一致性、完整性
isolation: 隔离性防止多个事务同时执行导致数据异常问题
Durability: 持久性事务处理结束后,对数据的修改是永久的

char、varchar区别

charvarchar
长度是否固定
核心差别效率高空间利用率高
使用场景数据长度短,处理效率要求高数据长度长

float、double区别

float占4个字节,最多表示8位十进制数
double占8个字节,最多表示16位十进制数

mysql内连接、左连接、右连接区别

内连接交集
左连接以左表为基础,右表没有的会以null为结果
右连接以右表为基础,左表没有的会以null为结果

mysql索引如何实现

索引定义满足某种特定查找算法的数据结构,索引会指向特定数据,已实现高效查询
实现原理目前主流数据库引擎都采用B+树实现,性能与二分法类似

怎么验证mysql的索引可以满足需求

使用explain语句查看sql执行select的过程,来判断是否满足需求

说一下数据库的事务隔离

事务隔离作用

事务隔离意义解决事务并发异常
事务并发异常1、脏写:多个事务写同一条数据,然后部分提交,部分回滚,导致提交的也无法生效,即脏写
2、脏读:事务A读取到了事务B未提交数据,事务B选择了回滚,此时事务A脏读
3、不可重复读:事务A多次读取同一条数据,此时事务B更新了该条数据,倒是事务A多次读取数据不一致,出现不可重复读问题
4、幻读:事务A多次查表,事务B同时进行了增删操作,导致事务A多次查询结果不一致,出现幻读

事务隔离四种配置

事务隔离配置值级别特点解决问题
未提交读(READ-UNCOMMITTED)最低级别事务未提交可互相读,不允许同时写同一条数据仅解决脏写
提交读(READ-COMMITTED)比最低高一个级别事务提交后才可以被其他事务读取仅解决脏写、脏读
可重复读(REPEATABLE-TABLE)默认级别只要多次读取的数据一致即可解决脏写、脏读、可重复读
序列化(SERIALIZABLE)最高级别完全顺序执行由于是串行,所以不存在并发的任何问题

mysql常用引擎

引擎简介
InnoDB1、支持数据库ACID事务,提供行级锁、外键约束
2、内存中的缓存池会缓存数据和索引
3、不支持全文搜索,启动慢,不保存行数,select count需要扫描全表
4、提供行级锁,锁粒度小,写操作不会锁全表,适合高并发场景
MyIASM1、MySQL默认引擎,不支持事务,不支持行级锁、外键,写操作需要锁全表,效率较低
2、保存表行数,select count不需要扫描全表
3、读操作多于写操作,并且不需要事务支持,适合MyIASM

说一下mysql的行锁和表锁

行锁表锁
引擎支持情况InnoDB支持行锁,MyIASM不支持行锁两个引擎都支持
开销
加锁速度
是否会出现死锁不会
锁定粒度
锁冲突概率
并发量

说一下乐观锁、悲观锁

锁类型简介
乐观锁乐观锁认为读过程中数据不会被修改,所以读不上锁,写上锁,该锁需要自己实现
悲观锁悲观的认为读写过程中数据均有可能被修改,所以读写均上锁

mysql排查问题有哪些手段

1、show processlist查看所有连接信息
2、explain查看语句执行过程
3、开启慢查询日志,查看慢查询sql

如何做mysql的性能优化

1、为搜索字段创建索引
2、避免使用select *,列出所需查询的字段
3、垂直分割表
4、选择正确的引擎

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值