0221打卡
1.mysql的四种隔离级别。读未提交(最低),读已提交,可重复读(默认隔离级别),串行化(最高,同一时间只能有一个事务在执行,效率最低)
2.脏读和幻读的区别:
- 脏读:一个事务读到另一个事务未提交的数据。(另一个事务可能会失败和回滚)
- 幻读:同一个事务前后两次读到的数据集合不一致
3.mysql的乐观锁和悲观锁:
- 乐观锁:读多写少,所以不加锁,更新的时候会判断别人有没有更改数据(使用版本号来判断)
- 悲观锁:读少写多,每次都上锁。这样保证数据处理的安全,线程执行时会等待阻塞直到拿到锁
4.对数据库做过什么优化?
- 索引优化:对上百万数据的大表的字段创建索引可以减少查询时间,提高查询效率。包括复合索引。比如项目中经常涉及到订单order表。经常需要查询 一个用户哪个时间段做的订单,涉及到 user_id 和 start_date,就需要对这两个字段创建复合索引。
需要注意的是,顺序很重要,要遵循最左匹配原则,如果查询条件最左侧没有user_id,只有start_date的情况下,不会走到这个索引。
CREATE INDEX idx_order_user_date ON orders (user_id, start_date);
- 查询语法优化:慢sql
- 使用缓存:如redis缓存,将数据放入内存中,提高查询效率
- 读写分离:通过主从复制,将读和写分散到不同的服务器,提高系统的并发
- 分库分表:分库:项目中按业务划分为几个中心库。分表:按省份划分,可以分为8个域,每个域都是一个子表
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
内容推荐
Day 27✅ 今天做了:微服务改造⏰ 明天计划:简历撰写📚 今日感悟:
0
Python学习 Day8
3
新版 Cursor 用不了 cursor-byok?修好啦!
4
22届双非专升本在上海做 java 开发4年了,一直没跳槽,在一家外包公司,4年工资只涨了一千,还是去年说要离职才申请下来涨这么点,工作这几年技术几乎没怎么长进,可能是有点太安于现状了吧。目前想跳槽转 AI 应用开发,不知道怎么开始准备,大佬们有什么好的建议吗,boss 上几乎都是外包在打招呼,我看上的岗位打招呼几乎都是已读不回或直接没消息,现在这行情开发还能干吗,附简历
1
✅ 今天做了:学习AI零代码应用生成平台之对话历史模块章节,完成方案设计中的分页查询,库表设计,最后完成对话历史后端模块开发代码⏰ 明天计划:📚 今日感悟:
0
