随笔分类 -  数据库

摘要:MyBatis解决方案 使用 #{} 而不是 ${} #{} 在SQL语句预编译后,${} 会被替换为 ? ,然后在执行 SQL 语句的时候,将参数替换 ? ,即使参数中有如'or 1=1'等敏感输入,也只会被作为参数,而不会被作为 SQL指令 ${} 在SQL语句预编译的时候会将参数代替${},就 阅读全文
posted @ 2023-02-12 17:04 pzistart 阅读(86) 评论(0) 推荐(0) 编辑
摘要:前置知识 Using filesort:表示需要用到 sort buffer 内存空间进行排序 sort buffer 是一块可调整的内存空间,如果需要排序的数据量太大而空间不够,将用到磁盘临时文件来排序,效率很低 什么情况下会用到 sort buffer 来排序? 不能根据索引直接知道排序结果,就 阅读全文
posted @ 2023-02-05 18:01 pzistart 阅读(83) 评论(0) 推荐(0) 编辑
摘要:前置知识 涉及到的几个概念:隐藏字段,undo log,readview (每个表中的)隐藏字段:最后修改记录的事务id,回滚指针 undo log :在插入/更新数据的时候记录回滚日志 当前读:读取的是记录的最新版本,在执行的时候会加锁,防止其他并发事务修改该记录 select ... for u 阅读全文
posted @ 2023-01-31 21:37 pzistart 阅读(98) 评论(0) 推荐(0) 编辑
摘要:change buffer 一块存储了更新操作的缓冲区。它存在于 MySQL 的 buffer pool 中。 它是怎么作用的: 对于普通索引,如果更新操作的目标page页不在内存中,那么会先将这些更新操作记录在change buffer中。等到 select 操作将该目标page页查询到内存时会执 阅读全文
posted @ 2023-01-27 23:31 pzistart 阅读(80) 评论(0) 推荐(0) 编辑
摘要:元数据锁 SHARE_READ/EXCLUSIVE: 共享锁:在DQL/DML的时候给表加 SHARE_READ/WRITE 锁,与排它锁互斥 作用:在A事务未提交的情况下,B事务不能修改表结构 排他锁:在DDL的时候给表加EXCLUSIVE锁,与共享/排他锁都互斥。 作用:修改表结构的时候不允许执 阅读全文
posted @ 2023-01-10 21:00 pzistart 阅读(454) 评论(0) 推荐(0) 编辑
摘要:今天又复习了一下索引,做一个总结吧 主要就是复习了索引分类概念,索引使用,SQL优化等三个方面 1. 主键索引,唯一索引,常规索引; 对于唯一索引,同一个表中可以创建多个,用作创建唯一索引的字段,不能有重复,在表中该字段值是不能呢重复的 如上图,根据phone这个字段创建了一个唯一索引 常规索引,用 阅读全文
posted @ 2023-01-02 21:37 pzistart 阅读(125) 评论(0) 推荐(0) 编辑
摘要:mongo中的日期,在显示上,会比我们正常的时间少8h。 如果向mongo中插入数据,数据库显示的时间会少8h 如果从mongo中查出数据,那么在idea中会是正常的;而如果是在datagrip/navicat中查,那么显示的时间还是少了8h 这只是显示的问题,而对实际操作没有影响。我们在存入数据或 阅读全文
posted @ 2022-11-07 13:40 pzistart 阅读(204) 评论(0) 推荐(0) 编辑

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