随笔分类 -  MYSQL

摘要:垂直切分 将不同业务模块所使用的表切分到不同的数据库(主机)之上,这样的切能够称之为数据的垂直(纵向)切分 在架构设计中,各个功能模块相互之间的交互点越统一越少,系统的耦合度就越低,系统各个模块的维护性以及扩展性也就越好,实现数据的垂直切分也就越简单 垂直切分的长处 ◆ 数据库的拆分简单明了,拆分规 阅读全文
posted @ 2023-06-16 14:18 上好佳28 阅读(10) 评论(0) 推荐(0) 编辑
摘要:一、MySQL数据库层怎么保证不丢数据 InnoDB支持事务,事务提交需要写redo、undo。采用日志先行的策略,将数据的变更在内存中完成,并且将事务记录成redo,顺序的写入redo日志中,即表示该事务已经完成,就可以返回给客户已提交的信息。但是实际上被更改的数据还在内存中,并没有刷新到磁盘,当 阅读全文
posted @ 2023-06-14 15:36 上好佳28 阅读(203) 评论(0) 推荐(1) 编辑
摘要:几种方案 1、先更新数据库,再更新缓存 该方案会导致不一致的情况: (1)线程A更新了数据库 (2)线程B更新了数据库 (3)线程B更新了缓存 (4)线程A更新了缓存 B却比A更早更新了缓存,这就导致了脏数据,不可行 2、先删缓存,再更新数据库 该方案会导致不一致的情况: (1)请求A进行写操作,先 阅读全文
posted @ 2023-06-14 14:57 上好佳28 阅读(17) 评论(0) 推荐(0) 编辑
摘要:什么是延迟加载 延迟加载的条件:resultMap可以实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。 延迟加载的好处: 先从单表查询、需要时再从关联表去关联查询,大大提高 数据库性能,因为查询单表 阅读全文
posted @ 2023-06-14 14:43 上好佳28 阅读(146) 评论(0) 推荐(0) 编辑
摘要:MySQL缓存机制即缓存sql 文本及缓存结果,用Key-Value形式保存再服务器内存中,如果运行相同的sql,服务器直接从缓存中去获取结果,不需要再去解析、优化、执行sql,可以大大提高查询的性能 参数设置 (1) have_query_cache表示是否支持查询缓存,YES表示支持 (2) q 阅读全文
posted @ 2023-06-14 14:30 上好佳28 阅读(36) 评论(0) 推荐(0) 编辑
摘要:索引下推 在不使用ICP(索引条件下推优化,MySQL5.6添加的,用于优化数据查询)的情况下,在使用非主键索引(又叫普通索引或者二级索引)进行查询时,存储引擎通过索引检索到数据,然后返回给MySQL服务器,服务器然后判断数据是否符合条件 。 在使用ICP的情况下,如果存在某些被索引的列的判断条件时 阅读全文
posted @ 2023-06-14 11:18 上好佳28 阅读(312) 评论(0) 推荐(0) 编辑
摘要:悲观锁 悲观锁的特点是先获取锁,再进行业务操作,即“悲观”的认为获取锁是非常有可能失败的,因此要先确保获取锁成功再进行业务操作。通常所说的“一锁二查三更新”即指的是使用悲观锁。通常来讲在数据库上的悲观锁需要数据库本身提供支持,即通过常用的select … for update操作来实现悲观锁。当数据 阅读全文
posted @ 2023-06-14 10:55 上好佳28 阅读(20) 评论(0) 推荐(0) 编辑
摘要:一张图讲清楚索引失效问题 阅读全文
posted @ 2023-06-14 10:54 上好佳28 阅读(5) 评论(0) 推荐(0) 编辑
摘要:事物的隔离级别 1.Read Uncommitted 读未提交,存在脏读,不可重复读看,幻读等问题 2.Read Committed 读已提交,存在不可重复读看,幻读等问题 3.Repeatable Read 可重复读,存在幻读 4.Serializable 串行,脏读,不可重复读看,幻读均可避免 阅读全文
posted @ 2023-06-14 10:05 上好佳28 阅读(109) 评论(0) 推荐(0) 编辑
摘要:二叉查找树 二叉查找树也称为有序二叉查找树,左子树的值均小于根节点,则右子树的值均大于于根节点的值 局限性 对于某些情况,二叉查找树会退化成一个有n个节点的线性链,导致查找效率极差 二叉平衡树 带有平衡条件的二叉查找树,平衡条件必须满足(所有节点的左右子树高度差不超过1 弥补了二叉查找树极端情况下查 阅读全文
posted @ 2023-06-13 16:34 上好佳28 阅读(12) 评论(0) 推荐(0) 编辑
摘要:1) 事务支持 MyISAM不支持事务,而InnoDB支持。InnoDB的AUTOCOMMIT默认是打开的,即每条SQL语句会默认被封装成一个事务,自动提交,这样会影响速度,所以最好是把多条SQL语句显示放在begin和commit之间,组成一个事务去提交 2) 存储结构 MyISAM:每个MyIS 阅读全文
posted @ 2023-06-13 16:13 上好佳28 阅读(13) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示