深入理解数据库原理
文章平均质量分 93
以实战为基础,以数据库原理为基础,结合实战,深入理解数据库原理。
wangxiaoming
博客是很好的总结和记录工具,如果有问题,来不及回复,关注程序员奇点,获取我的联系方式,向我提问,也可以给我发送邮件,联系 1275801617@qq.com
展开
-
数据表的范式
数据表的范式数据库设计有哪些范式?关系型数据库一共有 6 种范式,按照范式级别,从低到高分别是:1NF 第一范式2NF 第二范式3NF 第三范式BCNF 巴斯-科德范式4NF 第四范式5NF 第五范式,也叫完美范式数据库的范式设计越高阶,冗余度就越低,高阶范式一定符合低阶范式的要求。第一范式 1NF第一范式的目标是确保每列的原子性,如果每列都是不可再分的最小原子单元。1NF 是指数据库中任何属性都是原子的,不可拆分。第二范式 2NF首先满足第一范式,并且表中非主键不存在对原创 2020-06-18 20:00:32 · 423 阅读 · 0 评论 -
【深入理解数据库原理】MVCC 原理
MVCC 原理事务的4个隔离级别读未提交读已提交可重复读串行化什么是脏读简单说,读了一条未提交的数据什么是不可重复读?一个事务读取了另外一个事务修改后记录强调的是 update 和delete ,只需要锁住满足条件的记录即可什么是幻读一个事务读取了另外一个事务插入的数据,强调的是 insert ,要锁住满足条件及相近的记录。MYSQL 中默认的隔离级别是可重复读,可解决脏读和不可重复读的问题。但是不能解决幻读的问题。Oracle 默认的是Read Commit原创 2020-06-10 23:00:10 · 736 阅读 · 0 评论 -
MySQL 中有哪些锁?
MySQL 中有哪些锁?数据库中锁的设计初衷处理并发问题,作为多用户共享资源,当出现并发访问的时候,数据库需要合理控制资源访问规则。锁就是实现这些访问规则中的重要数据。锁的分类根据加锁范围,MySQL 里面的锁可以分成全局锁、表级锁、行锁三类。全局锁全局锁,就是对整个数据库实例加锁,MySQL 提供了一个加全局读锁的方法,命令是:Flush tables with read lock (FTWRL)当需要整个库只读状态的时候,可以使用这个命令,之后其他线程的:数据更新语句(增删改),数据定义原创 2020-05-28 23:42:42 · 1277 阅读 · 0 评论 -
【深入理解数据库原理】数据库索引原理
先看个例子在下面这个表T中,如果我执行 select* from t where k between3and5,需要执行几次树的搜索操作,会扫描多少行?mysql> create table T (ID int primary key, k int NOT NULL DEFAULT 0,s varchar(16) NOT NULL DEFAULT '',index k(k))engine=InnoDB;insert into T values(100,1,'aa'),(208,2,'b原创 2020-05-25 23:45:08 · 417 阅读 · 0 评论 -
【深入数据库原理】数据库索引类型
数据库索引数据库索引,在日常工作中会经常接触到,比如某一个 SQL 查询比较慢,分析原因后,经常会说 “给某个字段加个索引”,索引又是如何工作的?索引的出现是为了提高数据查询的效率,和书的目录是一样的。索引常见的模型哈希表哈希表示一种 以键值对(key-Value)存储数据的结构,我们只要输入待查找是值 key,就可以找到其对应的值即 Value。哈希的思路很简单,把值放在数组里,用一个哈希函数把 key 换算成一个确定的位置。然后把 value 放在数组的这个位置。 有点类似 HashMap 的原创 2020-05-24 15:32:30 · 266 阅读 · 0 评论 -
【深入理解数据库原理】一条更新语句是如何执行的?
一条更新语句是如何执行的?之前你可能经常听DBA同事说,MySQL可以恢复到半个月内任意一秒的状态,惊叹的同时,你是不是心中也会不免会好奇,这是怎样做到的呢?这个需要从一个表,一条更新语句说起。 假设创建一个表,有一个主键 ID和 一个整型字段 C:mysql> create table T(ID int primary key, c int);现在要将 ID = 2 这一行更新mysql> update T set C=C+1 where ID=2;[外链图片转存失败,源站可能原创 2020-05-20 17:21:15 · 1117 阅读 · 0 评论 -
【深入理解数据库原理】一条 SQL 查询语句是如何执行的?
一条 SQL 查询语句是如何执行的?比如,你有个最简单的表,表里只有一个ID字段,在执行下面这个查询语句时mysql> select from T where ID=10;我们只看到一个输入语句,返回一个结果,却不知道这个 SQL 语句在 MySQL 内部的执行过程。MySQL 基本架构示意图Server 层包括连接器,查询缓存,分析器,优化器,执行器等,涵盖的功能包括 MySQl 大多数核心服务,比如内置函数(日期,时间,数学和加密函数),跨存储引擎的Server 层实现。比如存储过原创 2020-05-18 11:28:59 · 496 阅读 · 0 评论 -
MongoDB 索引
MongoDB 建立索引索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的。索引是特殊的数据结构,索引存储...原创 2019-09-11 16:28:05 · 211 阅读 · 0 评论 -
oracle 数据库-查询
oracle 数据库-查询-- 11、查询语句:语法:select 字段1 , 字段2, 字段3 from 表1 , 表 2 where 查询条件2、例子:Sql查询语句:selectt.teller_id,t.role_id,f.teller_deptidfromemd_mrolet,emd_mtellerfwhere...原创 2019-08-22 15:04:51 · 710 阅读 · 0 评论 -
【深入理解MongoDB】MongoDB 索引原理
为啥需要索引?增加索引是为了提高集合的查询效率当往一个集合中插入多个文档后,每个文档经过存储殷引擎后,有一个位置信息,通过这个位置信息。就能从存储引擎中读出该文档。在 mmapv1 引擎下,位置信息是【文件id+文件内 offset】 。在wiredtiger存储引擎里,位置信息是 wiredgiter 在存储文档时生成的一个 key ,通过这个key 能访问到对应的文档。db.em...原创 2019-08-02 11:28:27 · 2004 阅读 · 0 评论 -
PLSQL Drop 表之后恢复
不小心在PLSQL中将一张表删掉了,并且都不知道自己删的是哪张表,一时大为紧张,寻思了一下找到了一种恢复误删除表的方法。1、查看你删除的是哪张表: select * from user_recyclebin where DROPTIME >'2013-09-02 00:00:00';我们会看到我们删除的是ASS_REQ_LOG_STAT_BAK表,这...原创 2019-07-31 08:56:22 · 953 阅读 · 0 评论 -
Centos 下MongoDB 集群安装
Centos 下MongoDB 集群安装架构准备三台服务器172.31.1.135172.31.1.136172.31.1.137创建目录mkdir /datamkdir /data/logmkdir /data/log/mongodb/mkdir /dat...原创 2019-07-25 10:25:38 · 298 阅读 · 0 评论 -
如何设置Mysql不区分大小写
1)lower_case_table_names = 0区分大小写(即对表名大小写敏感),默认是这种设置。这样设置后,在mysql里创建的表名带不带大写字母都没有影响,都可以正常读出和被引用。变量lower_case_file_system说明是否数据目录所在的文件系统对文件名的大小写敏感,其中:ON说明对文件名的大小写不敏感,OFF表示敏感。 1 2 3 ...原创 2019-07-10 17:03:20 · 2943 阅读 · 0 评论 -
【深入理解数据库原理】原理
数据库索引原理如何理解数据库索引?数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。就像我们以前用的新华字典的目录一样,能帮助我们快速查询到某一个字。索引分类分类角度 索引名称 数据结构 B+树,Hash索引,R-Tree等 ...转载 2019-07-12 19:08:18 · 222 阅读 · 0 评论 -
PLSQL 执行存储过程 17位随机时间,随机码生成
PLSQL 执行存储过程begin for i in 1..10000000 loop casekey := 'TMP'||lpad(i,7,0); -- TMP0000001 insert into TMP_UPSTATE_CASEKEY values(casekey, 1, sysdate); end loop; commit; end;随机码生成: sele...原创 2019-08-22 15:02:40 · 1232 阅读 · 0 评论 -
MYSQL 安装配置 基于WIN10
MYSQL 安装配置 基于WIN101 、官网下载:地址链接2、下载ZIP包之后解压到D盘:查看目录结构:其次:path 中进行配置:此电脑-》属性-》高级系统设置-》:其次:双击PATH,最后:打开CMD 以管理员运行!!! 这个很重要!初始化MYSQL安装MYSQL服务:执行:D:...是你都...原创 2019-07-25 10:37:00 · 2662 阅读 · 0 评论 -
MYSQL 常用问题处理命令与常用命令 不能连接问题
MYSQL 常用问题处理命令与常用命令问题1:Ubuntu14连接MySql报错“can'tconnect to local mysql server through socket '/var/run/mysqld/mysqld.sock'”现象:后来通过mysql -u用户名 -p密码 的命令连接,Mysql数据库时,报错"can't connect to l...原创 2019-07-26 11:27:15 · 1090 阅读 · 0 评论 -
Windows 10 下 MogoDb 环境搭建
Windows 10 下 MogoDb 环境搭建1.下载MongoDB下载地址:官网下载2. 其次 安装包之后,一步一步点击安装, 我这指定目录:D:\mongodb\Server\3.4\bin3. 执行命令:cd D:\mongodb\Server\3.4\binmongod help 可以查看mongodb的一些参数...原创 2019-08-08 10:34:39 · 721 阅读 · 1 评论 -
oracle SQl 总结
oracle SQl 总结1、查询数据表中某个字段重复出现两次以上的数据select * from zf_fundinorderpayt where MAINORDERSYSTEMNO in(select MAINORDERSYSTEMNO from zf_fundinorderpayt group by MAINORDERSYSTEMNO having ...原创 2019-08-22 15:03:38 · 789 阅读 · 0 评论 -
RAC和DG 说的啥?
RAC和DG 说的啥?RAC全称是Real Application Clusters,中文译为“实时应用集群”,,是ORACLE甲骨文公司提供的在低成本服务器上构建高可用性数据库系统的解决方案,部署自由,无需购买额外部件,就可以实现多节点的负载均衡和故障转移功能,满足7*24业务不间...原创 2019-07-31 08:56:01 · 1177 阅读 · 0 评论 -
SQL性能优化
SQL性能优化本文章内容将完整发表在公众号:程序员开发者社区 ,关注后所有文章免费看。Oracle 优化器RBO, CBORBO 基于规则的优化器 oracle 10g开始,已经丢弃RBOCBO 基于成本的优化器 oracle 8中开始引入的Oracle 解析器按照从右到左的顺序...原创 2019-07-25 10:23:14 · 3282 阅读 · 0 评论 -
MongoDB 常用SQL命令 与启动异常处理
background选项指定所创建的索引是应该发送在shell的前台还是后台。在前台运行完成的速度更快,但占用更多的系统资源。所以在生产系统的高峰时期,在前台运行不是个好主意。MongoDB 数据导入导出导出json格式mongoexport -d DBNAME -c COLLECTIONNAME -o FILENAME --type=json导入json格...原创 2019-07-10 17:23:39 · 450 阅读 · 0 评论 -
MYSQL 存储过程 与 count(*)、count(列)、 count(1) 的理解
先说结论:执行效果上: 1、count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL 2、count(1)包括了忽略所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULL 3、count(列名)只包括列名那一列,在统计结果的时候,会忽略列值为空(这里的空不是只空字符串或者0,而是表示null)的计数,即某个字段值为NULL时,不统计。...原创 2019-07-09 14:32:37 · 842 阅读 · 0 评论 -
oracle 查询锁和 正在执行的SQL
查询Oracle正在执行的sql语句及执行该语句的用户:SELECT b.sid oracleID, b.username 登录Oracle用户名, b.serial#, spid 操作系统ID, paddr, sql_text 正在执行的SQL, b.machine 计算...原创 2019-07-05 09:26:59 · 579 阅读 · 0 评论 -
SQL性能优化-执行计划
SQL性能优化首先,要理解什么是执行计划PLSQL可以看执行计划:圆形框起来的也可以改代码格式:红框数据库存储结构:数据块 是oracle 对数据文件进行管理的单位, 数据库中最小的数据块 是最小的数据单位,是最小的I/O 单位,数据区:连续的数据块构成的数据库逻辑存储分配单位数据区何时...原创 2019-08-22 15:07:08 · 469 阅读 · 0 评论