|
查看: 1006|回复: 6
|
不明白SQL index的重要性,请前辈解释.
[复制链接]
|
|
|
发表于 18-10-2008 11:08 AM
|
显示全部楼层
|
当你的资料存进资料库时,是没有进行排序的,而是根据你输入的次序而储存的。INDEX的作用就是把这些不顺序的资料给整理出一个次序来,然后当你读取资料时,资料库引擎就会根据INDEX里面的排序找出实际资料的位子,从而快速的找到你要的资料。 |
|
|
|
|
|
|
|
|
|
|
发表于 18-10-2008 11:39 AM
|
显示全部楼层
拿查询电话簿的例子来说,通常你都会通过Index (A-Z/1-9)来查询某个电话,这是最快捷的方法。
同样的,DB也可以透过这个方法来更快速地查询资料,若是没有Index的话,查询起来就很吃力了;举个例子,若是你要从一个没有Index的Field内查询"Mandy"这个关键词,DB需要阅读每一个记录才能得到结果,就好像你要翻遍整本电话簿才能查到你要的联络号码。 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 18-10-2008 01:27 PM
|
显示全部楼层
哦哦,明白.
可是为什么有人说假如某些table是keep update...
就不适合用index??? |
|
|
|
|
|
|
|
|
|
|
发表于 18-10-2008 01:37 PM
|
显示全部楼层
|
因为频密更新的table会导致资料库引擎必须频密的更新INDEX,这包括分析所有的资料以找出新的资料应该排在哪一个位置,这是十分耗时的。 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 18-10-2008 04:30 PM
|
显示全部楼层
哦哦哦,所以一些类似有算total visitor 或 counter的table就不适合了?
明白...
谢谢~~ |
|
|
|
|
|
|
|
|
|
|
发表于 18-10-2008 10:19 PM
|
显示全部楼层
假设你的Table只有区区的200个Records,有无Index都无所谓。
假设你的Table有200万(2,000,000)个Records,Index的功力就显得非常重要。 |
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|