摘要:
不可以。因为这样会形成一个有序数组,文件系统和数据库的索引都是存在硬盘上的,并且如果数据量 大的话,不一定能一次性加载到内存中。有序数组没法一次性加载进内存,这时候B+树的多路存储威力 就出来了,可以每次加载B+树的一个结点,然后一步步往下找, 阅读全文
2021年8月15日
摘要:
当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速 度。 索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立 簇索引,那么需要的空间就会更大。 创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加 阅读全文
摘要:
将无序的数据变成相对有序的数据(就像查有目的一样) 阅读全文
摘要:
MySQL 索引通常是被用于提高 WHERE 条件的数据行匹配时的搜索速度,在索引的使用过程中,存在 一些使用细节和注意事项。 函数,运算,否定操作符,连接条件,多个单列索引,最左前缀原则,范围查询,不会包含有NULL值 的列,like 语句不要在列上使用函数和进行运算 阅读全文
摘要:
char的长度是不可变的,用空格填充到指定长度大小,而varchar的长度是可变的。 char的存取数度还是要比varchar要快得多 char的存储方式是:对英文字符(ASCII)占用1个字节,对一个汉字占用两个字节。varchar的存储方 式是:对每个英文字符占用2个字节,汉字也占用2个字节。 阅读全文
摘要:
非空字段:应该指定列为NOT NULL,除非你想存储NULL。在 MySQL 中,含有空值的列很难进行查 询优化,因为它们使得索引、索引的统计信息以及比较运算更加复杂。你应该用0、一个特殊的值或者 一个空串代替空值; 取值离散大的字段:(变量各个取值之间的差异程度)的列放到联合索引的前面,可以通过c 阅读全文
摘要:
非聚集索引和聚集索引的区别在于, 通过聚集索引可以查到需要查找的数据, 而通过非聚集索引可以 查到记录对应的主键值 , 再使用主键的值通过聚集索引查找到需要的数据。 聚集索引和非聚集索引的根本区别是表记录的排列顺序和与索引的排列顺序是否一致。 聚集索引(Innodb)的叶节点就是数据节点,而非聚集索 阅读全文
摘要:
如果您认识某个字,您可以快速地从自动中查到这个字。但您也可能会遇到您不认识的字,不知道它的 发音,这时候,您就不能按照刚才的方法找到您要查的字,而 需要去根据"偏旁部首"查到您要找的字, 然后根据这个字后的页码直接翻到某页来找到您要找的字。但您结合"部首目录"和"检字表"而查到的字 的排序并不是 真 阅读全文
摘要:
聚簇索引就是按照拼音查询,非聚簇索引就是按照偏旁等来进行查询。 其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查"安"字,就会很自然地翻开字典 的前几页,因为"安"的拼音是"an",而按照拼音排序 汉字的字典是以英文字母"a"开头并以"z"结尾的, 那么"安"字就自然地排在字典的前部。 阅读全文
摘要:
NOW()命令用于显示当前年份,月份,日期,小时,分钟和秒。 CURRENT_DATE()仅显示当前年份,月份和日期。 阅读全文
摘要:
第一种回答 原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某 个环节。 。事务在执行过程中发生错误,会被恢复(Rollback)到事务开始前的状态,就像这个事务从来没有执 行过一样。 一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏 阅读全文
摘要:
(1)简单归纳: 第一范式(1NF):字段不可分; 第二范式(2NF):有主键,非主键字段依赖主键; 第三范式(3NF):非主键字段不能相互依赖。 (2)解释: 1NF:原子性。 字段不可再分,否则就不是关系数据库;; 2NF:唯一性 。一个表只说明一个事物; 3NF:每列都与主键有直接关系,不存在 阅读全文
摘要:
第一范式 在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数 据库就不是关系数据库。 所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同 一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。 如果出现重复的属性,就可 阅读全文
摘要:
主键:用户选作元组标识的一个候选键程序主键 超键:在关系中能唯一标识元组的属性集称为关系模式的超键 候选键:不含有多余属性的超键称为候选键。也就是在候选键中,若再删除属性,就不是键了! 外键:如果关系模式R中属性K是其它模式的主键,那么k在模式R中称为外键。 主键为候选键的子集,候选键为超键的子集, 阅读全文
摘要:
如果一个索=引包含(或者说覆盖)所有需要查询的字段的值,我们就称 之为“覆盖索引”。 我们知道在InnoDB存储引 擎中,如果不是主键索引,叶子节点存储的是主键+列值。最终还是要“回 表”,也就是要通过主键再查找一次,这样就 会比较慢。覆盖索引就是把要查询出的列和索引是对应的, 不做回表操作! 阅读全文
摘要:
在最频繁使用的、用以缩小查询范围的字段,需要排序的字段上建立索引。 不宜: 1)对于查询中很少涉及的列或者重复值比较多的列 2)对于一些特殊的数据类型,不宜建立索引,比如文本字段(text)等。 阅读全文
摘要:
1.设计良好的数据库结构,允许部分数据冗余,尽量避免join查询,提高效率。 2.选择合适的表字段数据类型和存储引擎,适当的添加索引。 3.MySQL库主从读写分离 4.找规律分表,减少单表中的数据量提高查询速度。 5.添加缓存机制,比如Memcached,Apc等。 6.不经常改动的页面,生成静态 阅读全文
摘要:
B+tree的磁盘读写代价更低,B+tree的查询效率更加稳定 数据库索引采用B+树而不是B树的主要原因:B+树只要遍历叶子节点就可以实现整棵树的遍历,而且在 数据库中基于范围的查询是非常频繁的,而B树只能中序遍历所有节点,效率太低。 B+树的特点 所有关键字都出现在叶子结点的链表中(稠密索引),且 阅读全文
摘要:
视图是虚拟的表,与包含数据的表不一样,视图只包含使用时动态检索数据的查询;不包含任何列或数 据。使用视图可以简化复杂的 sql 操作,隐藏具体的细节,保护数据;视图创建后,可以使用与表相同 的方式利用它们。 视图不能被索引,也不能有关联的触发器或默认值,如果视图本身内有order by 则对视图再次 阅读全文