按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
column_name 'ASC | DESC'。。。)
注意到所有这些解释器有几点是相同的 它们的基本开始语句都是
CREATE INDEX index_name ON table_name (column_name; 。。。)
SQL Server 和 ORACLE 允许你创建成簇的索引 这将在稍后讨论 ORACLE 和 Informix
允许你指明列名是按升序排列还是按降序排列 我们不喜欢听到被打断的声音 但是请再
一次 参考你的数据库管理系统以得到明确的关于 CREATE INDEX 的指示
例如 要对 BILLS 表中的 ACCOUNTID 字段创建索引 其 CREATE INDEX 语句如下
INPUT
SQL》 SELECT * FROM BILLS
OUTPUT
211
…………………………………………………………Page 212……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
NAME AMOUNT ACCOUNT_ID
Phone pany 125 1
Power pany 75 1
Record Club 25 2
Software pany 250 1
Cable TV pany 35 3
Joe's Car Palace 350 5
S。C。 Student Loan 200 6
Florida Water pany 20 1
U…O…Us Insurance pany 125 5
Debtor's Credit Card 35 4
INPUT/OUTPUT
SQL》 CREATE INDEX ID_INDEX ON BILLS( ACCOUNT_ID );
SQL》 SELECT * FROM BILLS
NAME AMOUNT ACCOUNT_ID
Phone pany 125 1
Power pany 75 1
Software pany 250 1
Florida Water pany 20 1
Record Club 25 2
Cable TV pany 35 3
Debtor's Credit Card 35 4
Joe's Car Palace 350 5
U…O…Us Insurance pany 125 5
S。C。 Student Loan 200 6
直至索引被 DROP INDEX 语句删除之前 BILLS 表是按照 ACCOUNT_ID 的顺序进行
排序的 DROP INDEX 语句是非常清楚的
SYNTAX
SQL》 DROP INDEX index_name;
当索引被删除以后的结果是什么样呢
INPUT/OUTPUT
SQL》 DROP INDEX ID_INDEX
Index dropped。
SQL》 SELECT * FROM BILLS
212
…………………………………………………………Page 213……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
NAME AMOUNT ACCOUNT_ID
Phone pany 125 1
Power pany 75 1
Record Club 25 2
Software pany 250 1
Cable TV pany 35 3
Joe's Car Palace 350 5
S。C。 Student Loan 200 6
Florida Water pany 20 1
U…O…Us Insurance pany 125 5
Debtor's Credit Card 35 4
分析
现在的 BILLS 表是它原本的形态 使用索引不会对表中的物理存储造成影响
你也许想知道为什么数据库提供了索引而又允许你使用 ORDER BY 子句吧
INPUT/OUTPUT
SQL》 SELECT * FROM BILLS ORDER BY ACCOUNT_ID;
NAME AMOUNT ACCOUNT_ID
Phone pany 125 1
Power pany 75 1
Software pany 250 1
Florida Water pany 20 1
Record Club 25 2
Cable TV pany 35 3
Debtor's Credit Card 35 4
Joe's Car Palace 350 5
U…O…Us Insurance pany 125 5
S。C。 Student Loan 200 6
分析
它与使用 ID_INDEX 语句的结果是一样的 不同之处在于当你使用 ORDER BY 子句
时每次运行它都需要重新进行排序 而当你使用索引的时候 数据库会建立一个物理索引
对象 就是前边提到的树结构 而在你每次运行查询时都访问同一个索引
警告 当表被删除时 所有与表相关的索引也将被删除
213
…………………………………………………………Page 214……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
使用索引的技巧
这里给出了几个在使用索引时需要记住的技巧
l 对于小表来说 使用索引对于性能不会有任何提高
l 当你的索引列中有极多的不同的数据和空值时索引会使性能有极大的提高
l 当查询要返回的数据很少时索引可以优化你的查询 比较好的情况是少于全部数据的
25% 如果你要返回的数据很多时索引会加大系统开销
l 索引可以提高数据的返回速度 但是它使得数据的更新操作变慢 在对记录和索引进
行更新时请不要忘记这一点 如果要进行大量的更新操作 在你执行更新操作时请不
要忘记先删除索引 当执行完更新操作后 只需要简单的恢复索引即可 对于一次特
定的操作 系统可以保存删除的索引 18 个小时 在这个时间内数据更新完后你可以恢