还有,什么时候使用手机比较合适?
当前回答
索引用于加快在数据库中的搜索速度。MySQL有一些关于这个主题的很好的文档(也适用于其他SQL服务器): http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html
索引可用于高效地查找查询中与某列匹配的所有行,然后仅遍历表的该子集以查找精确匹配。如果WHERE子句中的任何列上都没有索引,SQL server必须遍历整个表并检查每一行以查看是否匹配,这在大表上可能是一个缓慢的操作。
索引也可以是UNIQUE索引,这意味着在该列中不能有重复的值,也可以是PRIMARY KEY,在某些存储引擎中,PRIMARY KEY定义了值在数据库文件中的存储位置。
在MySQL中,你可以在SELECT语句前使用EXPLAIN来查看你的查询是否使用了任何索引。这是排除性能问题的良好开端。点击此处阅读更多信息: http://dev.mysql.com/doc/refman/5.0/en/explain.html
其他回答
如果你正在使用SQL Server,最好的资源之一是安装时附带的Books Online !这是第一个地方,我将参考任何SQL Server相关的主题。
如果是实际的“我应该怎么做?”之类的问题,那么StackOverflow将是一个更好的提问场所。
此外,我已经有一段时间没有回来了,但sqlservercentral.com曾经是顶级的SQL Server相关网站之一。
那么,索引是如何工作的呢?
首先,当我们将索引放在列上以优化查询性能时,数据库表不会重新排序。
An index is a data structure, (most commonly its B-tree {Its balanced tree, not binary tree}) that stores the value for a specific column in a table.
b -树的主要优点是其中的数据是可排序的。与此同时,B-Tree数据结构具有时间效率,搜索、插入、删除等操作可以在对数时间内完成。
所以指数是这样的
在这里,对于每一列,它都将映射到一个数据库内部标识符(指针),该标识符指向该行的确切位置。现在,如果我们运行同样的查询。
查询执行的可视化表示
所以,索引只是把时间复杂度从o(n)降低到o(log n)
详细信息- https://pankajtanwar.in/blog/what-is-the-sorting-algorithm-behind-order-by-query-in-mysql
索引用于加快在数据库中的搜索速度。MySQL有一些关于这个主题的很好的文档(也适用于其他SQL服务器): http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html
索引可用于高效地查找查询中与某列匹配的所有行,然后仅遍历表的该子集以查找精确匹配。如果WHERE子句中的任何列上都没有索引,SQL server必须遍历整个表并检查每一行以查看是否匹配,这在大表上可能是一个缓慢的操作。
索引也可以是UNIQUE索引,这意味着在该列中不能有重复的值,也可以是PRIMARY KEY,在某些存储引擎中,PRIMARY KEY定义了值在数据库文件中的存储位置。
在MySQL中,你可以在SELECT语句前使用EXPLAIN来查看你的查询是否使用了任何索引。这是排除性能问题的良好开端。点击此处阅读更多信息: http://dev.mysql.com/doc/refman/5.0/en/explain.html
索引的使用有几个不同的原因。主要原因是为了加快查询速度,以便更快地获取行或对行进行排序。另一个原因是定义一个主键或唯一索引,这将保证没有其他列具有相同的值。
索引用于加快查询的性能。它通过减少必须访问/扫描的数据库数据页的数量来实现这一点。
在SQL Server中,聚集索引决定了表中数据的物理顺序。每个表只能有一个聚集索引(聚集索引就是表)。表上的所有其他索引都称为非聚集索引。
SQL Server索引基础 SQL Server索引基础 SQL Server索引 指数基本知识 指数(维基)
推荐文章
- 如何在Ruby On Rails中使用NuoDB手动执行SQL命令
- 查询JSON类型内的数组元素
- 确定记录是否存在的最快方法
- 获得PostgreSQL数据库中当前连接数的正确查询
- 在SQL选择语句Order By 1的目的是什么?
- 我如何循环通过一组记录在SQL Server?
- 如何从命令行通过mysql运行一个查询?
- 外键约束可能导致循环或多条级联路径?
- 使用LIMIT/OFFSET运行查询,还可以获得总行数
- 当恢复sql时,psql无效命令\N
- 货币应该使用哪种数据类型?
- 如何选择每一行的列值不是独特的
- 如何改变字符集(和排序)在整个数据库?
- mySQL:: insert到表,数据从另一个表?
- 如何在Postgres中获得两个字段的MIN() ?