关系型数据库
关系型数据库是一种采用关系模型存储数据的数据库系统。在关系型数据库中,数据被组织成一个或多个表格(也称为关系),每个表格包含多行记录,每行记录代表一组相关数据。每个表格都有一个定义该表格中数据的结构的模式,即表格的列和每个列的数据类型。关系型数据库通过使用 SQL(结构化查询语言)作为其主要的数据操作语言来查询和操作数据。
2024年10月12日
关系型数据库是一种采用关系模型存储数据的数据库系统。在关系型数据库中,数据被组织成一个或多个表格(也称为关系),每个表格包含多行记录,每行记录代表一组相关数据。每个表格都有一个定义该表格中数据的结构的模式,即表格的列和每个列的数据类型。关系型数据库通过使用 SQL(结构化查询语言)作为其主要的数据操作语言来查询和操作数据。
2024年10月12日
来源:https://mp.weixin.qq.com/s/WvFqnNuaSPOVrTckqVh9og
“索引”是为了能够更快地查询数据。比如一本书的目录,就是这本书的内容的索引,读者可以通过在目录中快速查找自己想要的内容,然后根据页码去找到具体的章节。
数据库也是一样,如果查询语句使用到了索引,会先去索引里面查询,取得数据所在行的物理地址,进而访问数据。
2024年10月12日
InnoDB存储引擎支持以下几种常见的索引,如B+树索引、哈希索引、全文索引。哈希索引是自适应的,InnoDB会根据表的使用情况自动为表生成哈希索引。
B+树索引是目前关系型数据库中最常用、最有效的索引之一,其索引结构是一种多路平衡树结构(与二叉树类似,B代表的不是Binary,而是Balance)。通过B+树索引能够快速的定位要要查找的数据所在的数据页,然后将页读入内存,在通过页字典槽快速寻找到数据行。
2024年10月12日
在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天、每周,都会留下一些脚印,就是这些创作的内容,有一种执着,就是不知为什么,如果你迷茫,不妨来瞅瞅码农的轨迹。
有100万条数据,需要从中筛选查询10条数据,尽然用了3秒才出来,于是乎,你会想到添加个索引,然后查询速度一下从秒级别变成了毫秒级别,你知道中间发生了什么吗?
2024年10月12日
所有Mysql列类型都可以被索引,对相关列使用索引时提高select操作性能的最佳途径。根据存储引擎可以定义每张表的最大索引数和最大数和最大索引长度,每种存储引擎(如MyISAM、InnoDB、BDB、MEMORY等)对每个表至少支持16索引,总索引长度至少为256。大多数存储引擎有更高的限制。
MyISAM和InnoDB存储引擎的表默认创建的都是BTREE索引。Mysql支持前缀索引,即对索引字段的前N个字符创建索引。前缀索引的长度跟存储引擎相关,对于MyISAM存储引擎的表,索引的前缀长度可以达到1000字节长,而对于InnoDB存储引擎的表,索引的前缀长度最多是767字节。前缀的限制应以字节为单位进行测量,而create table语句中的前缀长度解释为字符数。在为使用多字节字符集的列指定前缀长度时需要多加考虑。
2024年10月12日
主键索引:表的主键列会默认添加索引,索引中保存了该行记录的所有数据
唯一索引(upique):该列的所有值必须唯一
普通索引(normal):普通列的一种索引
聚合索引:是普通索引中的一种,但是它是由多个列组成的索引复制代码
2024年10月12日
(1)索引的本质是什么?
索引的本质是一种数据结构,用于提高数据库在查询、排序和连接操作时的数据检索效率。从数据结构的角度来看,常见的索引实现方式如 B 树(包括 B+树),其目的是通过对数据进行有序组织和存储,减少数据库系统在查找特定数据时所需的磁盘 I/O 操作次数和比较次数。通过创建索引,数据库可以快速定位到与查询条件匹配的数据所在的位置,而无需对整个表进行顺序扫描。这就大大缩短了查询时间,特别是对于大型数据表,索引的作用尤为明显。简而言之,索引是对数据表中数据的一种高效组织和快速访问的机制。
2024年10月12日
2024年10月12日
什么是索引
索引是一种数据结构,其作用就是用来提高数据查询效率。比较常用的比喻就是将其类比为书籍的目录。通过目录可以精确的找到某一章节的内容所在页。
在数据量较小的时候使用索引其实也没有什么意义,即使没有索引需要一条一条遍历数据对于计算机来说也并不需要太多时间。而一旦数据量较大,要保证我们能正常的对外提供服务,保证用户使用体验那么索引就是必要的了。
索引类型
索引是一种数据结构,为了应对不同的场景会有多种实现。在MySQL中主要就是Hash索引和B+Tree。