mysql 面试题 一定会问

  1. 订单,库存两个表怎么保证数据一致性?
    mysql用事务,存储引擎InnoDB,事务规定只有订单完成,并且相应的库存减少才允许提交事务,否则事务回滚,确保数据一致性
  2. 外键的作用
    保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。
    如果设置了外键,删主表数据时,不能删
    https://my.oschina.net/u/4479011/blog/4494777
  3. 什么事读锁,什么是写锁?
    读锁又叫共享锁,可以读但不能修改
    写锁又叫排它锁,它自己可读可修改,其他事务不能读也不能修改
    在这里插入图片描述
  4. 数据库中,什么是锁?
    在这里插入图片描述
  5. mysql事务隔离级别,说一下对事务隔离性的理解?
    关系型数据库遵循ACID
    在这里插入图片描述
    在这里插入图片描述
    READ_UNCOMMITTED(未授权读取) a读取b没提交的数据,后来b可能都回滚了,这就是脏读
    导致脏读,幻读或不可重复读
    READ_COMMITTED(授权读取) 读取的是已经提交的数据,a读取一个字段的值,b对这个值进行了修改,a再读的时候发现数据是改变了

幻读或不可重复读
REPEATABLE_READ(可重复读) 对同一个字段,多次的读取是一致的,a读取一个字段的值,b对这个值进行了修改,a再读的时候发现数据是一致的
幻读还是会发生
SERIALIZABLE(串行)
不会出现上述的情况,但是影响程序性能
mysql默认采取的是可重复读

幻读是啥? a把某个字段从1修改成2,b往表里又插入数据,a就发现有些数据没有改变。

6.mysql存储引擎 myisam和innodb的区别(频率高)
innodb
聚集索引,索引文件在一起,查询时查两次,1次是查索引,2是查数据
myisam 非聚集索引,不在一个文件,
在这里插入图片描述

  1. 组合索引(a,b,c)支持哪些索引查找?
    不支持
    b,
    c,
    bc
    支持 a , ab,abc ab
    acb 新版的mysql 进行重新排序变为abc
    ac 会用到a的索引

  2. 什么情况下少建索引
    在这里插入图片描述
    数据字段值不多样,没必要加索引
    频繁的要修改,索引要来回重建没必要加索引
    平衡树旋转

  3. 什么是表分区?
    表分区是,底层分了,但是看不到
    分表是实际能看到的

  4. mysql支持的分区类型有哪些?
    在这里插入图片描述

  5. MVCC 了解
    在这里插入图片描述

  6. mysql优化
    业务优化,数据库设计(刚开始)
    数据库索引
    数据多的话,分库分表
    主从 读写分离
    存储过程 模块化编程 (https://blog.csdn.net/weixin_44170221/article/details/106676950)
    更改mysql配置 最大连接数
    选择正确的存储引擎 (innodb还是myisam)
    定时清理不需要的数据,定时进行碎片整理
    热点数据redis monogo替代
    模糊查询es替代
    服务器优化
    mysql 配置优化 等等
    在这里插入图片描述

  7. 大表优化
    1.限制数据的范围
    2.读写分离
    3.缓存 mysql缓存
    4.垂直分区

  8. 在哪些场景下索引失效?
    1.没有遵循索引最左原则。 建立几个复合索引字段,最好按顺序用上
    2.最佳左前缀法则,如果索引了多列,要遵循最左前缀法则,尽量不要跳过索引中间列
    3.不在索引列上做任何操作,计算函数,手动类型转换
    4.存储引擎不能使用索引中范围条件右边的列,就是范围查找之后的索引都失效。
    5.mysql在使用!= ,<> 或者like的左模糊 例子like ‘%XX’
    6.is null和is not null 有无法使用索引
    7.字符串不加单引号索引失效,这里又隐式类型转换操作,更严重会导致行锁变表锁

  9. 哪个软件能实现数据库的高可用?
    MHA
    https://www.cnblogs.com/–smile/p/11475380.html

  10. mysql执行一条sql语句完整过程
    在这里插入图片描述

  11. mysql主从同步怎么做的?
    在这里插入图片描述

  12. cap原则
    CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾

  13. 什么是间隙锁?
    在这里插入图片描述
    锁了一页数据 锁了一个范围

  14. 什么是聚簇索引,非聚簇索引?
    innodb的主键索引是聚集索引,就是索引的叶子节点存的是整个单条记录的所有字段值
    非聚簇索引的叶子节点存的是主键字段的值。

  15. 回表和覆盖索引是什么意思?
    以主键为查询条件的话,所有字段都会查到,不用回表。
    在这里插入图片描述
    覆盖索引是查的这个索引能查到你所需要的所有数据,不需要去另外的数据结构中去查,其实就是不用回表
    怎么避免? 不是必须的字段就不要出现在select里面 或者 需要的字段建立联合索引,但是索引字段多了,存储和插入数据时消耗也更大了。
    select a from xx where a>0

  16. mysql死锁怎么解决?
    在这里插入图片描述

  17. 如何避免死锁?
    1.操作完后立即提交事务,中途不要去第三方接口或者执行一些慢逻辑,能不放事务里面的php代码,就别放到事务里面。
    2.资源一次性分配
    3.尽量采用乐观锁
    4.采用超市设置,时间越短,锁等待时间越短,到点就会自动超市,不会继续等待锁释放
    5.保证没有长事务
    6.修改多个表或者多个行的时候,将修改的顺序保持一致,死锁是因为锁定资源的顺序刚好相反。
    7.创建索引,可以使创建的锁关联到的数据更少。如果where后面的字段没有索引,哪怕只操作一行数据,也会锁整张表,因为锁是基于索引的。(这个是不光面试,工作也能用到)
    在这里插入图片描述

  18. 间隙锁怎么预防?
    在这里插入图片描述

  19. 超大分页怎么处理?
    1.select * from table where id in( select id from table where age=20 limit 1000000,10)
    用了覆盖索引
    2.减少这种请求,只允许逐页查看

阿里巴巴处理超大分页解决办法
在这里插入图片描述
mysql 查100000000条都查到了,但是只返回10条

  1. 索引目的?
    1.快速访问数据表中的特定信息,提高检索速度
    2.创建唯一性索引,保证数据库中每一行数据的唯一性
    3.加速表和表的连接
    4.使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间

  2. 索引对数据库的负面影响,建立索引的原则及什么情况不宜建索引?
    在这里插入图片描述
    在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
系统根据B/S,即所谓的电脑浏览器/网络服务器方式,运用Java技术性,挑选MySQL作为后台系统。系统主要包含对客服聊天管理、字典表管理、公告信息管理、金融工具管理、金融工具收藏管理、金融工具银行卡管理、借款管理、理财产品管理、理财产品收藏管理、理财产品银行卡管理、理财银行卡信息管理、银行卡管理、存款管理、银行卡记录管理、取款管理、转账管理、用户管理、员工管理等功能模块。 文中重点介绍了银行管理的专业技术发展背景和发展状况,随后遵照软件传统式研发流程,最先挑选适用思维和语言软件开发平台,依据需求分析报告模块和设计数据库结构,再根据系统功能模块的设计制作系统功能模块图、流程表和E-R图。随后设计架构以及编写代码,并实现系统能模块。最终基本完成系统检测和功能测试。结果显示,该系统能够实现所需要的作用,工作状态没有明显缺陷。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。进入银行卡列表,管理员可以进行查看列表、模糊搜索以及相关维护等操作。用户进入系统可以查看公告和模糊搜索公告信息、也可以进行公告维护操作。理财产品管理页面,管理员可以进行查看列表、模糊搜索以及相关维护等操作。产品类型管理页面,此页面提供给管理员的功能有:新增产品类型,修改产品类型,删除产品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mr.杰瑞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值