先来一个测试,后再讲sql索引
product表,有1000万以上的数据,里面的字段有pid,pname(产品名),pcontent(产品详细介绍),pimage(产品图片),userid(发布的用户),现在我们使用sql语句来查询出product表中某个用记发布的产品总数。
打开sql server查询分析器,在里面输入
select count(*) from product where userid=10000
运行。
等了一分多钟,显示出来了运行结果,唉太慢了。
然后使用你先在查询分析器中运行这句
CREATE INDEX index_product ON product ([userid])
然后再运行上面的sql语句
select count(*) from product where userid=10000
看看花了多长时间?
居然一秒钟就运行完了,相差太大了
这就是sql索引的作用:在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。
索引
您可以在表中创建索引,以便更加快速高效地查询数据。
用户无法看到索引,它们只能被用来加速搜索/查询。
注释:更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。
SQL CREATE INDEX 语法
在表上创建一个简单的索引。允许使用重复的值:
CREATE INDEX index_name
ON table_name (column_name)
注释:"column_name" 规定需要索引的列。
SQL CREATE UNIQUE INDEX 语法
在表上创建一个唯一的索引。唯一的索引意味着两个行不能拥有相同的索引值。
CREATE UNIQUE INDEX index_name
ON table_name (column_name)
CREATE INDEX 实例
本例会创建一个简单的索引,名为 "PersonIndex",在 Person 表的 LastName 列:
CREATE INDEX PersonIndex
ON Person (LastName)
如果您希望以降序索引某个列中的值,您可以在列名称之后添加保留字 DESC:
CREATE INDEX PersonIndex
ON Person (LastName DESC)
假如您希望索引不止一个列,您可以在括号中列出这些列的名称,用逗号隔开:
CREATE INDEX PersonIndex
ON Person (LastName, FirstName)
原创文章:转载请注明来自:www.aspprogram.cn