日期维度有其特殊性,该维度数据一旦生成就不会改变,所以不需要版本号、生效日期和过期日期。代理键是维度表的主键。事实表引用维度表的代理键作为自己的外键,四个外键构成了事实表的联合主键。...因此在我们的销售订单示例中,所有数据仓库里的表,除日期维度表外,其它表都使用ORCFILE格式。日期维度表数据一旦生成就不会修改,所以使用TEXTFILE格式。...数据一旦存在,对它的查询就会有返回结果。 这个功能所具有的另一个好处是,可以将新数据写入到一个专用的目录中,并与位于其它目录中的数据存在明显的区别。...支持行级更新 HDFS是一个不可更新的文件系统,其中只能创建、删除文件或目录,文件一旦创建,只能从它的末尾追加数据,已存在数据不能修改。...如先前收集的数据是错误的,或者第一次得到的可能只是部分数据(例如90%的服务器报告),而完整的数据会在后面提供,或者业务规则可能要求某些事务因为后续事务而重新启动,(例如,一个客户购买了商品后,又购买了一张会员卡
◆ MySQL三层逻辑架构 MySQL的存储引擎架构将查询处理与数据的存储/提取相分离。下面是MySQL的逻辑架构图: ? 1、第一层负责连接管理、授权认证、安全等等。...4、 事务支持 MyISAM:强调的是性能,每次查询具有原子性,其执行数度比InnoDB类型更快,但是不提供事务支持。 InnoDB:提供事务支持事务,外部键等高级数据库功能。...8、表主键 MyISAM:允许没有任何索引和主键的表存在,索引都是保存行的地址。...如果联接只使用键的最左边的前缀,或如果键不是UNIQUE或PRIMARY KEY(换句话说,如果联接不能基于关键字选择单个行的话),则使用ref。如果使用的键仅仅匹配少量行,该联接类型是不错的。...key_len包含所使用索引的最长关键元素。在该类型中ref列为NULL。
,线程间就不会存在锁竞争,从而可以有效的提高并发访问效率,这就是ConcurrentHashMap所使用的锁分段技术,首先将数据分成一段一段的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据的时候...set集合从原理上如何保证不重复 1)在往set中添加元素时,如果指定元素不存在,则添加成功。也就是说,如果set中不存在(e==null ?...;如果不为空,则用equals方法比较元素是否相等,相等就不添加,否则找一个空位添加。...3)第三范式3NF(表中除主键外的字段都完全直接依赖,不能是传递依赖) 不能是传递依赖,即不能存在:非主键列 A 依赖于非主键列 B,非主键列 B 依赖于主键的情况。...Spring的特性 1.方便解耦,简化开发 通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。
2、所有的叶子结点包含了全部元素的信息,及指向含这些元素记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。 3、所有的中间节点元素都同时存在于子节点,在子节点元素中是最大(或最小)元素。 ️...推荐阅读: 维基百科 - B + 树 ️Hash 索引 hash 索引基于 hash 表实现,Hash 索引是将索引键通过 Hash 运算之后,将 Hash 运算结果的 Hash 值和所对应的行指针信息存放于一个...前面已经知道,Hash 索引是将索引键通过 Hash 运算之后,将 Hash 运算结果的 Hash 值和所对应的行指针信息存放于一个 Hash 表中,由于不同索引键存在相同 Hash 值,所以即使取满足某个...索引只能用于查找 key 是否存在(相等),遇到范围查找(>,匹配)等就不能进一步匹配。 ️...如果是联合索引,那么 key 也由多个列组成,同时,索引只能用于查找 key 是否存在(相等),遇到范围查询 (>、匹配) 等就不能进一步匹配了,后续退化为线性查找。
这是const连接类型的特殊情况。 const :读常量,且最多只会有一条记录匹配。表中的一个记录的最大值能够匹配这个查询(索引可以是主键或惟一索引)。...eq_ref:最多只会有一条匹配结果,一般是通过主键或者唯一键索引来访问;在连接中,MYSQL在查询时,从前面的表中,对每一个记录的联合都从表中读取一个记录,它在查询使用了索引为主键或惟一键的全部时使用...如果连接操作所用的键只匹配少量的记录,则ref是一 种好的连接类型。” 6、rows MYSQL认为必须检查的用来返回请求数据的行数 ,这里最理想的数字就是1。...:一旦mysql找到了与行相联合匹配的行,就不再搜索了。...Not exists :mysql优化了LEFT JOIN,一旦它找到了匹配LEFT JOIN标准的行,就不再搜索了。
二、业务驱动因素 数据架构常见的业务驱动因素如下: 1)利用新兴技术所带来的业务优势,从战略上帮助组织快速改变产品、服务和数据。...测量改进效率的方法。实例包括准确性改进、时间减少,由于数据错误而导致的纠错费。 4)业务环境改进。实例包括由于数据错误减少而改变的客户保留率和在递交报告中当局评论的减少率。...定义不同模型范围的业务元素目录。 2)业务管理视角(业务概念)。明确管理层在定义的业务模型中所涉及的不同业务概念之间的关系。 3)架构师视角(业务逻辑)。...主键(被选为实体唯一标识符的候选键)、超键(唯一标识实体实例的任何属性集)、备用键(没有被选为主键的候选键)——一般主键是代理键,备用键是业务键 1.4、域 域代表某一属性可被赋予的全部可能取值,也被称为值域...确保每个实体都有一个有效的主键,每个属性都依赖于主键,而且消除冗余的分组,以确保每个属性的原子性(不能有多个值存在)。第一范式包括了与通常称为关联实体的附加实体的多对多关系解析。
,就不算重复 超键 在关系中能唯一标识元组的属性集称为关系模式的超键。...一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。 候选键 是最小超键,即没有冗余元素的超键。...外键 在一个表中存在的另一个表的主键称此表的外键 主键的选择 数据库中的每一条记录都需要有一个唯一的标识,依据数据库第二范式,数据库中每一个表中都需要有一个唯一的主键,其他数据元素和主键一一对应。...并且已有的身份证号码是会变更的,比如在1999年时身份证号码就从15位变更为18位,但是主键一旦变更,以这个主键为外键的表也都要随之变更,这个工作量是巨大的。...因此,我更倾向于使用生成的ID作为数据库的主键。不单单是因为它的唯一性,更是因为一旦生成就不会变更,可以随意引用。
,线程间就不会存在锁竞争,从而可以有效的提高并发访问效率,这就是ConcurrentHashMap所使用的锁分段技术,首先将数据分成一段一段的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据的时候...set集合从原理上如何保证不重复 1)在往set中添加元素时,如果指定元素不存在,则添加成功。也就是说,如果set中不存在(e==null ?...;如果不为空,则用equals方法比较元素是否相等,相等就不添加,否则找一个空位添加。...HashMap和HashTable的区别: 二者都实现了Map 接口,是将惟一键映射到特定的值上;主要区别在于: 1)HashMap 没有排序,允许一个null 键和多个null 值,而Hashtable...3)第三范式3NF(表中除主键外的字段都完全直接依赖,不能是传递依赖) 不能是传递依赖,即不能存在:非主键列 A 依赖于非主键列 B,非主键列 B 依赖于主键的情况。
史上最全的数据库面试题,面试前刷一刷 一、基本概念 1.主键、外键、超键、候选键 **超键:**在关系中能唯一标识元组的属性集称为关系模式的超键。...一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。 **候选键:**是最小超键,即没有冗余元素的超键。...**外键:**在一个表中存在的另一个表的主键称此表的外键。...内连接: 只连接匹配的行 左外连接: 包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行 右外连接: 包含右边表的全部行(不管左边的表中是否存在与它们匹配的行),以及左边表中全部匹配的行...这样的话,相当于应用程序完成了SQL语句的路由,而且与MySQL的主从复制架构非常关联,一旦master挂了,某些slave挂了,那么应用程序就要修改了。
简单的 数据修改 你真的会玩SQL吗?你所不知道的 数据聚合 你真的会玩SQL吗?透视转换的艺术 你真的会玩SQL吗?冷落的Top和Apply 你真的会玩SQL吗?...三范式 第一范式:属性不可分,不允许存在隐藏字段,属性保持“原子性” ? 第二范式:要有主键。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。 ?...实体完整性:保证每一行都能被由称为主键的属性来标识 域完整性:保证在效范围内的值才能存储到相应列中 引用完整性:确保外键的值必须与相关的主键相匹配,禁止在从表中插入包含主表中不存在的关键字的数据行; 用户定义完整性...:由用户指定的一组规则 实现数据完整性的主要方式是约束 主键约束 primary key 确保字段值不重复不为NULL 唯一约束 unique 确保字段值不重复 外键约束 foreign key 确保字段值必须来自于指定表...检查约束 check 确保字段值的取值范围 缺省约束 default 给相应字段提供默认值 注:约束即可在创表时创建,也可在已存在的表上添加 练习 ?
因此,错误检测和快速、自动的恢复 是HDFS最核心的架构目标。从这个角度说,HDFS具有高度的容错性。 第二,HDFS的另一个设计目标是支持大文件存储。...换句话说,文件一旦建立后写入,就不需要再更改了。网络爬虫程序就很适合使用这样的模型。 第四,移动计算环境比移动数据划算。...HDFS的体系结构与工作流程 下面简单看一下HDFS的结构。图1所示为HDFS的体系结构图。HDFS采用的是Master/Slave架构。 NameNode节点作为Master服务器,有三部分功能。...一个数据行拥有一 个可选择的键和任意数量的列。用户可根据键访问行,以及对于一系列的行进行扫描和过滤。HBase一个可以横向扩 张的表存储系统,能够为大规模数据提供速度极快的低等级更新。...ID为 发表评论的用户ID,类型为Int,作为主键字段;BlogId为博客的原文ID,类型为Varchar。其中,BlogId作为 Comment表的外键,指向表Blogtable的主键。
定义候选键:是表中的一个或一组属性,其值能够唯一标识表中的每一行记录。主键:是从候选键中选择的一个特定的候选键,用于在表中表示每条记录。唯一性:候选键:值必须在表中是唯一的,不能有重复。...修改和删除候选键:可以被修改和删除,只要保证表中还有其他候选键能够唯一标识记录。主键:一旦被设置,修改或删除会比较复杂,因为涉及到索引和外键关系的更新。myisamchk 是用来做什么的?...InnoDBMySQL的架构设计?宏观架构:网络连接层:提供与MySQL服务器建立连接的支持。支持几乎所有主流的编程语言,如Java、C、Python等,通过各自的API与MySQL建立连接。...日志文件记录数据库的运行状态和错误信息。数据文件存储数据库的数据和索引信息。配置文件存放配置信息,如字符集、校验规则等。逻辑架构:Server层:负责建立连接、分析和执行SQL。...操作原理:查找:对查询的键值应用哈希函数,计算哈希值,定位到哈希表中的桶,然后查找该桶中的元素。插入:将索引值通过哈希函数映射到哈希表的某个桶中,如果桶已存在元素,通过链表解决哈希冲突。
在bin和sbin目录下分别存在两个可执行文件,一个是mysql,代表登录mysqld服务的客户端,一个是mysqld,代表提供网络数据存储服务的服务端。 3....,这太低效了,每次查询都需要重新编写文件IO的代码,同时文件存储方式也没有提供数据索引和查询功能,一旦查询,则需要在海量数据中一个一个遍历的查询,效率太低。...3.MySQL架构 && SQL分类 && MySQL存储引擎 1. 除MySQL客户端外,MySQL服务器整体的架构分为三层。...,则匹配的时候直接绝对匹配即可。...其实这里的外键,个人觉得和复合主键有那么一点点相似,必须保证外键和引用之间的唯一性,但外键的约束显然是要比复合主键更严格的,比如删除引用(引用中还存在着外键)是不被允许的,一个外键列中的字段只能配一个引用列中的字段
键 用于连接每对数据表的变量称为键。键是能唯一标识观测的变量(或变量集合)。 键的类型有两种。 主键:唯一标识其所在数据表中的观测。...例如,flights$tailnum 是一个外键,因为其出现在 flights 表中,并可以将每次航班与唯一一架飞机匹配。 一个变量既可以是主键,也可以是外键。...例如,origin 是 weather 表主键的一部分,同时 也是 airports 表的外键。一旦识别出表的主键,最好验证一下,看看它们能否真正唯一标识每个观测。...,它先通过两个表格的键匹配观测,然后将一个表格中的变量复制到另一个表格中。...内连接( inner_join() ) 只要两个观测的键是相等的,内连接就可以匹配他们,没有匹配的行不会包含在结果中。 ? 外连接( inner_join() ) 外连接保留至少存在于一个表中的观测。
辅助索引 而辅助索引中存储的则只是辅助键和主键的值。 这样在用辅助索引进行查询时,会先查出主键的值,然后再去主索引中根据主键的值查询目标值。(这个过程叫“回表”)。...隔离性(isolation):一个事务所做的修改在提交之前对其它事务是不可见的。 持久性(durability):一旦事务提交,其所做的修改便会永久保存在数据库中。...MySQL运行原理与基础架构 4.死锁 两个或多个事务在同一资源上相互占用并请求锁定对方占用的资源,从而导致恶性循环的现象。MySQL的部分存储引擎能够检测到死锁的循环依赖并产生相应的错误。...); 3.支持事务,采用MVCC来控制并发,并实现标准的4个事务隔离级别,支持外键; 4.索引基于聚簇索引建立,对于主键查询有较高性能; 5.数据文件的平台无关性,支持数据在不同的架构平台移植; 6.能够通过一些工具支持真正的热备...PBXT:类似InnoDB,但提供引擎级别的复制和外键约束,适当支持SSD存储。 TokuDB(开源):支持分形树索引结构,支持海量数据的分析。
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。...MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。...InnoDB存储引擎的优势: DML语句支持事务功能,保证ACID特性 行级锁的使用保证了高并发的属性 InnoDB对有主键的表会依据主键优化查询性能,也称聚簇索引,将所有数据存储在聚簇索引上以减少对主键查询的...但当表中含有主键或唯⼀键时,则每个被⽤作分区函数的字段必须是表中唯⼀键和主键的全部或⼀部分,否则就⽆法创建分区表。...4大类: 查询吞吐量 查询延迟与错误 客户端连接与错误 缓冲池利用率 对于MySQL性能监控,官方也提供了相关的服务插件:MySQL-Percona,下面简单介绍一下插件的安装 [root@db01
- 内连接、自连接、外连接(左、右、全)、交叉连接 - 内连接:只有两个元素表相匹配的才能在结果集中显示。...- 右外连接:右边为驱动表,驱动表的数据全部显示,匹配表的不匹配的不会显示。 - 全外连接:连接的表中不匹配的数据全部会显示出来。...- 交叉连接: 笛卡尔效应,显示的结果是链接表数的乘积。 11:主键和外键的区别?...· 主键在本表中是唯一的、不可唯空的,外键可以重复可以唯空; · 外键和另一张表的主键关联,不能创建对应表中不存在的外键。 12:在数据库中查询语句速度很慢,如何优化?...· 第一范式:列不可再分 · 第二范式:行可以唯一区分,主键约束 · 第三范式:表的非主属性不能依赖与其他表的非主属性外键约束,且三大范式是一级一级依赖的,第二范式建立在第一范式上,第三范式建立第一第二范式上
超键:在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。 候选键:是最小超键,即没有冗余元素的超键。...外键:在一个表中存在的另一个表的主键称此表的外键。 2、事务的四个特性 数据库事务transanction正确执行的四个基本要素。...持久性:在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。...左连接:left join 或 left outer join 左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。...常见于使用非唯一索引即唯一索引的非唯一前缀进行的查找 eq_ref:唯一性索引扫描,对于每个索引键,表中只有一条记录与之匹配。
一、基本概念 ---- 1.主键、外键、超键、候选键 超键:在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。...候选键:是最小超键,即没有冗余元素的超键。 主键:数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。...外键:在一个表中存在的另一个表的主键称此表的外键。...事务处理上方面 MyISAM:强调的是性能,每次查询具有原子性,其执行数度比InnoDB类型更快,但是不提供事务支持。 InnoDB:提供事务支持事务,外部键等高级数据库功能。...这样的话,相当于应用程序完成了SQL语句的路由,而且与MySQL的主从复制架构非常关联,一旦master挂了,某些slave挂了,那么应用程序就要修改了。
2…) 用修改表的语法来添加一个外键: ALTER TABLE 子表名 ADD CONSTRAINT 外键名 FOREIGN KEY(子表外键列)REFERENCES父表名(父表主键列); 子表外键列的数据类型必须和父表的主键列的数据类型一致...KEY(外键) 如果表b的外键关联表a的主键 ,那么我们无法删除表a,必须删除表b的外键或者是直接删除表b,才可以删除表a; NOT NULL 非空 UNIQUE唯一 PRIMARY KEY主键...2.排行榜系统: 排行榜系统几乎存在于所有的网站,例如按照热搜度的排行榜,按照发布时间的排行榜,按照各种复杂维度计算出的排行榜,redis提供了列表和有序合数架构,合理地使用这些数据结构,可以很方便的构建各种排行系统...key seconds 给已有的键值对设置过期时间 ttl key 查看键的过期时间,返回+数表示还有多少时间过期,返回-1表示未给这个key设置过期时间,返回-2表示这个key已经过期,并且被删除或者是这个键就不存在了...返回0说明这个键已存在,并且我们的命令不会被执行;返回1,说明这个键不存在,键值对添加成功。
领取专属 10元无门槛券
手把手带您无忧上云