sql
文章平均质量分 93
sql
努力学习,努力爱你!
这个作者很懒,什么都没留下…
展开
-
MyBatis常见面试题总结
虽然 MyBatis 解析 xml 映射文件是按照顺序解析的,但是,被引用的 B 标签依然可以定义在任何地方,MyBatis 都可以正确识别。原理是,MyBatis 解析 A 标签,发现 A 标签引用了 B 标签,但是 B 标签尚未解析到,尚不存在,此时,MyBatis 会将 A 标签标记为未解析状态,然后继续解析余下的标签,包含 B 标签,待所有标签解析完毕,MyBatis 会重新解析那些被标记为未解析的标签,此时再解析 A 标签时,B 标签已经存在,A 标签也就可以正常解析完成了。原创 2023-11-25 00:03:18 · 910 阅读 · 0 评论 -
Mongo
TTL 索引提供了一个过期机制,允许为每一个文档设置一个过期时间,当一个文档达到预设的过期时间之后就会被删除。TTL 索引除了有属性外,和普通索引一样。数据过期对于某些类型的信息很有用,比如机器生成的事件数据、日志和会话信息,这些信息只需要在数据库中保存有限的时间。TTL 索引运行原理。原创 2023-10-11 18:00:00 · 115 阅读 · 0 评论 -
redis
Redis 中的 List 其实就是链表数据结构的实现。许多高级编程语言都内置了链表的实现比如 Java 中的LinkedList,但是 C 语言并没有实现链表,所以 Redis 实现了自己的链表数据结构。Redis 的 List 的实现为一个双向链表,即可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销。Redis 中的 Hash 是一个 String 类型的 field-value(键值对) 的映射表,特别适合用于存储对象,后续操作的时候,你可以直接修改这个对象中的某些字段的值。原创 2023-10-10 18:00:00 · 158 阅读 · 0 评论 -
MySQL 性能优化
除非有特别的原因使用 NULL 值,应该总是让字段保持 NOT NULL。索引 NULL 列需要额外的空间来保存,所以要占用更多的空间;进行比较和计算时要对 NULL 值做特别的处理。读写分离主要是为了将对数据库的读写操作分散到不同的数据库节点上。这样的话,就能够小幅提升写性能,大幅提升读性能。我简单画了一张图来帮助不太清楚读写分离的小伙伴理解。一般情况下,我们都会选择一主多从,也就是一台主数据库负责写,其他的从数据库负责读。主库和从库之间会进行数据同步,以保证从库中数据的准确性。原创 2023-10-03 23:10:23 · 1519 阅读 · 0 评论 -
MySQL 基础
SQL 是一种结构化查询语言(Structured Query Language),专门用来与数据库打交道,目的是提供一种从数据库中读写数据的简单有效的方法。几乎所有的主流关系数据库都支持 SQL ,适用性非常强。并且,一些非关系型数据库也兼容 SQL 或者使用的是类似于 SQL 的查询语言。新建数据库、数据表、字段;在数据库中增加,删除,修改,查询数据;新建视图、函数、存储过程;对数据库中的数据进行简单的数据分析;搭配 Hive,Spark SQL 做大数据;原创 2023-10-08 11:00:00 · 712 阅读 · 0 评论 -
数据库基础知识
元组:元组(tuple)是关系数据库中的基本概念,关系是一张表,表中的每行(即数据库中的每条记录)就是一个元组,每列就是一个属性。在二维表里,元组也称为行。码:码就是能唯一标识实体的属性,对应表中的列。候选码:若关系中的某一属性或属性组的值能唯一的标识一个元组,而其任何、子集都不能再标识,则称该属性组为候选码。例如:在学生实体中,“学号”是能唯一的区分学生实体的,同时又假设“姓名”、“班级”的属性组合足以区分学生实体,那么{学号}和{姓名,班级}都是候选码。主码: 主码也叫主键。原创 2023-10-07 13:00:00 · 566 阅读 · 0 评论 -
mysql调优
repeatable read(可重复读):有幻读问题 mysql默认 在一个事务内读到同一个数据是一样都以第一次读到的数据库结果为结果(快照) 但是有可能事务在执行过程中 另一个事务已经将数据修改而在该事务中读到的仍然是快照中的结果 copyonwrite 机制 更新的时候复制一份拿出来更新,更新完后替换原 可能读到旧数据。如果有多条 如果是rr是需要事务的,如果不添加事务的话,可能同一时刻库中数据不一致 时间维度点不一致 如果是rc 则不要事务 需要保证一致性的选择rr。原创 2023-08-24 11:02:37 · 70 阅读 · 0 评论