还有,什么时候使用手机比较合适?
当前回答
索引用于加快查询的性能。它通过减少必须访问/扫描的数据库数据页的数量来实现这一点。
在SQL Server中,聚集索引决定了表中数据的物理顺序。每个表只能有一个聚集索引(聚集索引就是表)。表上的所有其他索引都称为非聚集索引。
SQL Server索引基础 SQL Server索引基础 SQL Server索引 指数基本知识 指数(维基)
其他回答
索引用于加快查询的性能。它通过减少必须访问/扫描的数据库数据页的数量来实现这一点。
在SQL Server中,聚集索引决定了表中数据的物理顺序。每个表只能有一个聚集索引(聚集索引就是表)。表上的所有其他索引都称为非聚集索引。
SQL Server索引基础 SQL Server索引基础 SQL Server索引 指数基本知识 指数(维基)
索引就是为了快速找到数据。
数据库中的索引类似于书籍中的索引。如果一本书有索引,我让你在书中找到一个章节,你可以在索引的帮助下很快找到。另一方面,如果这本书没有索引,你将不得不花更多的时间从开始到结束寻找每一页的章节。
以类似的方式,数据库中的索引可以帮助查询快速找到数据。如果你不熟悉索引,下面的视频会非常有用。事实上,我从他们身上学到了很多。
指数基本知识 聚集索引和非聚集索引 唯一索引和非唯一索引 指标的优缺点
索引的使用有几个不同的原因。主要原因是为了加快查询速度,以便更快地获取行或对行进行排序。另一个原因是定义一个主键或唯一索引,这将保证没有其他列具有相同的值。
一般来说,索引是b树。有两种类型的索引:聚集索引和非聚集索引。
聚集索引创建了行的物理顺序(它可以只有一个,在大多数情况下它也是一个主键——如果你在表上创建了主键,你也在这个表上创建了聚集索引)。
非聚类索引也是一棵二叉树,但它不创建行的物理顺序。因此非聚类索引的叶节点包含PK(如果存在)或行索引。
索引用于提高搜索速度。因为复杂度是O(log N)。索引是一个非常大而有趣的话题。可以说,在大型数据库上创建索引有时是一种艺术。
首先,我们需要了解正常(没有索引)查询是如何运行的。它基本上是逐个遍历每一行,当它找到数据时就返回。参考下图。(图片来自视频)
假设查询要找到50条记录,那么作为线性搜索,它必须读取49条记录。
参考下图。(图片来自视频)
当我们应用索引时,查询将快速找到数据,而不需要读取每个数据,只需要在每次遍历中消除一半的数据,就像二进制搜索一样。mysql索引存储为b -树,其中所有数据都在叶节点中。
推荐文章
- 如何在Ruby On Rails中使用NuoDB手动执行SQL命令
- 查询JSON类型内的数组元素
- 确定记录是否存在的最快方法
- 获得PostgreSQL数据库中当前连接数的正确查询
- 在SQL选择语句Order By 1的目的是什么?
- 我如何循环通过一组记录在SQL Server?
- 如何从命令行通过mysql运行一个查询?
- 外键约束可能导致循环或多条级联路径?
- 使用LIMIT/OFFSET运行查询,还可以获得总行数
- 当恢复sql时,psql无效命令\N
- 货币应该使用哪种数据类型?
- 如何选择每一行的列值不是独特的
- 如何改变字符集(和排序)在整个数据库?
- mySQL:: insert到表,数据从另一个表?
- 如何在Postgres中获得两个字段的MIN() ?