
mysql
文章平均质量分 78
ansizy
快乐coding!
展开
-
MySQL(面试问题)
多个字段建立联合索引时,会有一个顺序,例如 a、b、c 三个字段建立联合索引,如果我的查询条件是:where a = 1 and b = 1 and c = 1。这时查询会走联合索引,如果查询条件是:where b = 1 and c = 1。这时,查询条件不符合最左匹配原则,不会走联合索引。也就是说,我们的查询条件要尽量符合联合索引的排列顺序a、b、c,避免索引失效。主要因为,联合索引是先将a进行排序,再对b排序、再对c排序,这就导致a是全局有序的,b、c是局部有序的。原创 2024-09-27 15:26:23 · 734 阅读 · 0 评论 -
MySql(锁)
使用全局锁,整个数据库会进入全局锁主要用于。原创 2024-09-21 14:10:41 · 161 阅读 · 0 评论 -
MySQL内存(Buffer Pool)
MySQL 的数据存在磁盘,但是不能每次读取数据都从磁盘里去,这样磁盘IO太频繁,存在性能问题。InnoDB设计了一个缓存池(Buffer Pool),缓冲池在内存中。默认配置Buffer Pool大小为,可以通过参数调整。一般调整为可用物理内存的60%~80%。InnoDB会把存储的数据划分为若干,以页作为磁盘与内存的交互的基本单位,一个页默认大小为16KB,Buffer Pool中也是由构成。Buffer Pool除了缓存 和 ,还包括undo页,插入缓存页、自适应哈希索引、锁信息等等。Inno原创 2024-09-20 14:59:27 · 1155 阅读 · 0 评论 -
MySQL(日志)
undo : 撤销undo log 通过ReadView + undo log 实现MVCC(多版本并发控制)建立Buffer pool的目的:提高读写效率。MySQL读取一条记录时,先从磁盘读取该记录,然后在内存中修改该记录。修改完不直接写回磁盘,而是缓存起来,下次命中,直接从缓存中拿断电丢失问题:Buffer pool是基于内存的,如果断电重启,还未来的及写入磁盘的脏页数据就会丢失什是redo log?被需改Undo 页面,需要记录对应的redo log吗?redo log 和 undo log 的区原创 2024-09-20 10:31:45 · 1371 阅读 · 0 评论 -
MySQL(事务)
事务是在MySql引擎层实现的。四大特性、三种问题、四种解决方案。原创 2024-09-01 10:25:18 · 361 阅读 · 1 评论 -
MySQL(执行过程、索引、事务)
客户端(用户)连接 MySQL。有点类似于计算机网络中的分层结构,两层各自负责自己的事务。InnoDB。原创 2024-08-31 11:14:06 · 679 阅读 · 0 评论