我是一个delphi初学者,我想问一下高手们什么是索引????
解决方案 »
- 禁用网卡后不显示"打叉"的图标?
- sql server 查询结果导入到本地ACCESS数据库
- 怎样在在DBGrid中对某一条记录用右键实现删除 复制 粘贴 添加 等功能 麻烦各位用代码实现
- 【散分】庆51,大散分!!
- 修改记录时为何说另一个用户正在使用该记录,不让修改
- 大家帮帮我啊.急啊.顺便散下分
- 16进制文本转成二进制分析,然后以10进制文本输出,请问如何实现阿
- 关于指针内存释放问题◎◎◎◎
- 关于发送邮件问题??????
- Delphi里怎样调C++写的DLL函数?具体请进...
- 如何动态在odbc里创建一个别名?
- 菜鸟救命啊!怎样判断CheckListBox中的某一项被选中打勾和全部都没有选中?!!
2。 索引建立以后并不一定会启用,这要看在where语句中是否用到单一索引的字段或复合索引的首字段。
如:有表emp(empno,dept);
如果你只是select * from emp;索引不会启用,若用select * from emp where empno = '100';这时索引才会启用。
3。索引是否能加快查询的速度,要看实际情况。
例如,如果emp表有90万条记录,而dept只有三种可能值,即,1,2,3。
并且均匀分布。这时我要查dept = 3的一条记录。全局扫描顺序
empno dept
empno dept
....
可能我扫描到第六次就找到了。
如果我要用建在dept上的索引,而索引是排过序的,扫描顺序
dept
dept
dept
...
...
dept= 3的记录排在60万以后,我可能要扫描60万次才能找到记录。对于这种情况,有些dbms会自动判断而不启用索引,而有些不行。
综上所述,用索引要根据实际情况,不要盲目使用。