随笔分类 -  数据库

摘要:PostgreSQL™ Java SE 8 date LocalDate time LocalTime timestamp without timezone LocalDateTime timestamp with timezone OffsetDateTime varchar String tex 阅读全文
posted @ 2023-08-18 18:04 huigui_mint 阅读(1163) 评论(0) 推荐(0) 编辑
摘要:InnoDB的页结构 在InnoDB中,索引默认使用的数据结构为B+树,而B+树里的每个节点都是一个页,默认的页大小为16KB。 非叶子节点存的是索引值以及页的偏移量,而叶子节点上存放的则是完整的每行记录 在计算机中,磁盘存储数据最小单元是扇区,一个扇区的大小是512字节。文件系统中,最小单位是块, 阅读全文
posted @ 2023-07-14 02:55 huigui_mint 阅读(105) 评论(0) 推荐(0) 编辑
摘要:最左前缀匹配原则:在MySQL建立联合索引时会遵守最左前缀匹配原则,即最左优先,在检索数据时从联合索引的最左边开始匹配。 要想理解联合索引的最左匹配原则,先来理解下索引的底层原理。索引的底层是一颗B+树,那么联合索引的底层也就是一颗B+树,只不过联合索引的B+树节点中存储的是键值。由于构建一棵B+树 阅读全文
posted @ 2023-07-14 02:35 huigui_mint 阅读(1432) 评论(0) 推荐(1) 编辑
摘要:一、概述 缓存穿透是指查询一个不存在的数据,由于缓存和数据库都没有命中,导致每次请求都需要从数据库中读取数据,增加了数据库的负担。解决缓存穿透的方法有以下几种: 布隆过滤器(Bloom Filter):使用位数组来表示一个集合,并通过哈希函数将元素映射到数组上。在查询数据时,先判断该数据是否存在于布 阅读全文
posted @ 2023-06-29 03:43 huigui_mint 阅读(220) 评论(0) 推荐(0) 编辑
摘要:快照读:读取快照中的数据,不需要进行加锁。看到快照这两个字,各位肯定马上就想到 MVCC 了,是这样,MVCC 作用于读取已提交和可重复读(默认)这两个隔离级别,这俩隔离级别下的普通 select 操作就是快照读 当前读:读取的是最新版本的数据, 并且对读取的记录加锁, 阻塞其他事务同时改动相同记录 阅读全文
posted @ 2023-06-29 03:32 huigui_mint 阅读(87) 评论(0) 推荐(0) 编辑
摘要:select for update 是为了在查询时,避免其他用户以该表进行插入,修改或删除等操作,造成表的不一致性。 Select …forupdate语句是我们经常使用手工加锁语句。通常情况下,select语句是不会对数据加锁,妨碍影响其他的DML和DDL操作。同时,在多版本一致读机制的支持下,s 阅读全文
posted @ 2023-06-29 03:20 huigui_mint 阅读(593) 评论(0) 推荐(0) 编辑
摘要:mysql常用引擎包括:MYISAM、Innodb、Memory、MERGE MYISAM:全表锁,拥有较高的执行速度,不支持事务,不支持外键,并发性能差,占用空间相对较小,对事务完整性没有要求,以select、insert为主的应用基本上可以使用这引擎Innodb:行级锁,提供了具有提交、回滚和崩 阅读全文
posted @ 2023-06-27 02:35 huigui_mint 阅读(179) 评论(0) 推荐(0) 编辑
摘要:1、查询语句中不要使用select *2、尽量减少子查询,使用关联查询(left join,right join,inner join)替代3、减少使用IN或者NOT IN ,使用exists,not exists或者关联查询语句替代4、or 的查询尽量用 union或者union all 代替(在 阅读全文
posted @ 2023-06-27 02:33 huigui_mint 阅读(23) 评论(0) 推荐(0) 编辑
摘要:整体架构 sql解析 行转列、列转行 参考:https://blog.csdn.net/jx_870915876/article/details/52403472 阅读全文
posted @ 2023-06-13 23:56 huigui_mint 阅读(12) 评论(0) 推荐(0) 编辑

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