获得徽章 0
#挑战每日一条沸点#
索引介绍
MYSQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构,所以说索引的本质是:数据结构。
索引的目的在于提高查询效率,可以类比字典、 火车站的车次表、图书的目录等 。
简单理解为“排好序的快速查找的数据结构”。数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。
索引本身也很大,不可能全部存储在内存中,一般以索引文件的形式存储在磁盘上
平常说的索引,没有特别指明的话,就是B+树(多路搜索树,不一定是二叉树)结构组织的索引。其中聚集索引,次要索引,覆盖索引,复合索引,前缀索引,唯一索引默认都是使用B+树索引,统称索引。此外还有哈希索引等。
展开
评论
#挑战每日一条沸点#
数据库术语

数据库(database) - 保存有组织的数据的容器(通常是一个文件或一组文件)。
数据表(table) - 某种特定类型数据的结构化清单。
模式(schema) - 关于数据库和表的布局及特性的信息。模式定义了数据在表中如何存储,包含存储什么样的数据,数据如何分解,各部分信息如何命名等信息。数据库和表都有模式。
列(column) - 表中的一个字段。所有表都是由一个或多个列组成的。
行(row) - 表中的一个记录。
主键(primary key) - 一列(或一组列),其值能够唯一标识表中每一行。
展开
评论
#挑战每日一条沸点#
索引介绍
MYSQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构,所以说索引的本质是:数据结构。
索引的目的在于提高查询效率,可以类比字典、 火车站的车次表、图书的目录等 。
简单理解为“排好序的快速查找的数据结构”。数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。
索引本身也很大,不可能全部存储在内存中,一般以索引文件的形式存储在磁盘上
平常说的索引,没有特别指明的话,就是B+树(多路搜索树,不一定是二叉树)结构组织的索引。其中聚集索引,次要索引,覆盖索引,复合索引,前缀索引,唯一索引默认都是使用B+树索引,统称索引。此外还有哈希索引等。
展开
评论
#挑战每日一条沸点#
关系型数据库与非关系型数据库的区别?
关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织;
菲关系型数据库严格上不上一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等;
展开
评论
#挑战每日一条沸点#
数据库三大范式
第一范式(确保表中每列保持原子性)
数据库表中的字段都是单一属性的,不可再分;
这个单一属性有基本类型过程,包括:整型、字符型、逻辑型、日期等;
例如 “地址” 这个属性,如果业务上还可以细分,如拆分为省市区等,那就必须细分,否则不符合第一范式;

第二范式(确保表中每列都和主键列相关)
| 在第一范式的基础上,数据表的每一列(主键除外)都需要和主键相关,而且不能只与主键的一部分相关(联合主键的个别字段相关);也就是说在一个数据表中,只能保存一种数据。
数据库表中不存在非关键字段对任一候选关键字的部分函数依赖,即所有非关键字段都完全依赖于任意一组候选关键字;
部分函数依赖指的是存在组合关键字中某些字段觉得非关键字的情况;

第三范式(确保表中每列都和主键列直接相关,而不是间接相关/传递依赖)
| 在第二范式的基础上,第三范式是确保每列都和主键列直接相关,而不是间接相关,即限制列的冗余性。如果一个关系满足第二范式,并且除了主键以外的其他列都依赖于主键列,列和列之间不存在相互依赖关系,则满足第三范式。
在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式;
传递函数依赖,指的是如果存在“A->B->C”的决定关系,则C传递函数依赖A。
满足第三范式的数据库表不应存在传递依赖关系:关键字段 -> 非关键字段X -> 非关键字段Y;
展开
评论
#挑战每日一条沸点#
存储引擎是MySQL的组件,用于处理不同表类型的SQL操作。一个数据库中多个表可以使用不同引擎以满足各种性能和实际需求。
评论
#挑战每日一条沸点# MySQL与众不同主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。
评论
#挑战每日一条沸点#
运算符整理
1. / 整除(向下取整)
2. ++ 自增 a++ ++a区别
3. -- 自减 同上 a-- --a
4. 三目运算符 ?: 表达式? 真 :假
位操作符:直接对二进制位进行操作
5. << 左移 a<<x a左移x位,左移一位相当于乘2
6. >> 右移
7. ~取反
8. |按位或 有1为1
9. &按位与 同1为1 通常用来对某些位清0或保留某些位
例:a 的高八位清 0 , 保留低八位, 可作 a&255 运算 ( 255 的二进制数为0000000011111111)
10. ^按位异或 不同为1
展开
评论
#挑战每日一条沸点#
一维数组的数组名其实“相当于”保存数组中第一个元素的内存地址的指针,是一个地址常量 (相当于 并不是 “是”)
Int a[10 ];
&a:不是对常量a取地址,而是把a理解为数组a,得到整个数组a的首地址,即a值。
展开
评论
#挑战每日一条沸点#
多维数组的理解
在c/c++中,多维数组的构成其实是通过数组嵌套构成更高维的数组,比如,二维数组中每一个元素都是一个一维数组,五维数组的每一个元素都是一个四维数组,那么,数组名是指向首元素的指针,于是二维数组名就是一个指向一维数组的指针(int (*a)[x]),同样的,多维数组名其实就是一个指向维度-1的数组指针(int(*a)[x][x][x]…)
展开
评论
#青训营 x 字节后端训练营# 哈哈哈,志愿活动结束啦,终于闲下来了,可以好好学习啦,坚持打卡第一天,忙碌的一天结束啦
评论
个人成就
文章被阅读 1,087
掘力值 84
收藏集
0
关注标签
0
加入于