美文网首页
2020-07-17SQL刷题笔记二

2020-07-17SQL刷题笔记二

作者: _笑口常开 | 来源:发表于2020-07-17 22:58 被阅读0次

group by 用来分组数据, where 用来过滤数据

数据库范式

  • 范式是什么

范式是“符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度”。
数据库范式也分为1NF,2NF,3NF,BCNF,4NF,5NF。
一般在我们设计关系型数据库的时候,最多考虑到BCNF就够。
符合高一级范式的设计,必定符合低一级范式,例如符合2NF的关系模式,必定符合1NF。

  • 范式的分类
  • 1NF:每个关系r的属性值为不可分的原子值,1NF是所有关系型数据库的最基本要求。
  • 2NF:满足1NF,非主属性完全函数依赖于候选键(左部不可约)
  • 3NF:满足2NF,消除非主属性对候选键的传递依赖
  • BCNF:满足3NF,消除每一属性对候选键的传递依赖

数据库系统的特点:

  • 数据结构化
  • 数据的共享性高,冗余度低,易扩充
  • 数据独立性高
  • 数据由数据库管理系统DBMS统一管理和控制

数据库管理系统DBMS 提供以下几方面的数据控制功能:

  • 数据的安全性保护(security)
  • 数据的完整性检查(integrity)
  • 数据库的并发访问控制(concurrency)
  • 数据库的故障恢复(recovery)

本地管理表空间和字典管理表空间的特点

  1. 本地管理表空间:
  • 以位图的方式,将区的分配信息保存在数据文件本身,所有区的分配等操作都只是位图的运算,位图中的每一位对应数据文件中的一个区或几个连续的区。
  • 生成的重做日志将非常少
  • 运行的效率很高
  • 产生磁盘碎片很少
  • 如果要用本地管理表空间,可以在创建表空间时,使用: EXTENT MANAGEMENT LOCAL 选项。
  1. 字典管理表空间:
  • 将Oracle的区管理信息存放在表空间的字典中进行管理,所有区的分配与释放,都会使字典的记录的增减变动。
  • 在字典的记录中会执行更新、插入、删 除操作,在执行上述操作时,都会生成重做日志
  • 对字典的管理,将影响正常操作的效率
  • 在区分配、回收的过程中,产生磁盘碎片,如果磁盘碎片增加到一定 的程度,会浪费空间,严重影响效率
  • Oracle 在管理表空间的管理中,会产生递归SQL。
  • 如果要用字典的方式管理表空间,可以在创建表空间时,使用: EXTENT MANAGEMENT DICTIONARY 选项。

显然,本地管理表空间这种方式更优。

JDBC PreparedStatement 缺点及解决办法:

  • 缺点

不能直接用它来执行in条件语句

  • 解决方案:
  • 分别进行单条查询——这样做性能很差,不推荐。
  • 使用存储过程——这取决于数据库的实现,不是所有数据库都支持。
  • 动态生成PreparedStatement——这是个好办法,但是不能享受PreparedStatement的缓存带来的好处了。
  • 在PreparedStatement查询中使用NULL值——如果你知道输入变量的最大个数的话,这是个不错的办法,扩展一下还可以支持无限参数。

MYSQL 日志的分类

  • 错误日志:-log-err (记录启动,运行,停止mysql时出现的信息)
  • 二进制日志:-log-bin (记录所有更改数据的语句,还用于复制,恢复数据库用)
  • 查询日志:-log (记录建立的客户端连接和执行的语句)
  • 慢查询日志: -log-slow-queries (记录所有执行超过long_query_time秒的所有查询)
  • 更新日志: -log-update (二进制日志已经代替了老的更新日志,更新日志在MySQL 5.1中不再使用)

MYSQL主从复制

  • 分类

基于日志 bin-log
基于全局事务标识符 GTID

  • 原理
  • master将数据改变记录到二进制日志(binary log)中,也即是配置文件log-bin指定的文件(这些记录叫做二进制日志事件,binary log events)
  • slave将master的binary log events拷贝到它的中继日志(relay log)
  • slave重做中继日志中的事件,将改变反映它自己的数据(数据重演)

相关文章

  • 2020-07-17SQL刷题笔记二

    group by 用来分组数据, where 用来过滤数据 数据库范式 范式是什么 范式是“符合某一种级别的关系模...

  • sql刷题笔记(二)

    题目选自leetcode 上的题库 可能不一定都是最优解,答案仅供参考每道题后面都应相应的难度等级,如果没时间做的...

  • 晨间日记

    计算机刷题 看书写笔记 高数刷题 英语刷题 奋斗到天亮,加油奥利给

  • 谷歌工程师为金三银四筹备1000道Leetcode刷题笔记

    对于刷题相关的文章,在之前我也推荐过不少,今天再给大家推荐一份算法刷题笔记,这份笔记与以往的刷题有所区别,作者把 ...

  • 刷题笔记

    算法思想 一、二分查找 1. 算法思想 算法详解 算法细节 一定要看二分查找细节.md 实现时需要注意以下细节: ...

  • 刷题笔记

    最近在准备面试,发现自己真的菜的不行,就计划接下来的时间把 leetcode 上面刷的 中等题 和 每日一题做个简...

  • 刷题笔记

    题目描述 343 - Integer BreakGiven a positive integer n, break...

  • LeetCode刷题笔记(二)链表

    二. 链表 Leetcode中的链表有一个ListNode类,我很好奇它是怎么实现的?还有树的TreeNode类。...

  • 20190802  倒计时89天+96天

    今日学习: 第二轮金融笔记完善,第四章+千题 第三轮经济学宏观笔记+听课+千题 行测考试+刷题200道 申论积累素...

  • 2020-01-16 - 草稿

    梁桉1月16日工作日报 一、工作内容 1. 刷题 2.记笔记 3.写逐字稿练课 二、工作心得 今天在刷题的过程中,...

网友评论

      本文标题:2020-07-17SQL刷题笔记二

      本文链接:https://www.haomeiwen.com/subject/ipkohktx.html