搞不懂数据库是怎样按条件检索数据的?是不是一行一行的找呢?或者是按某种算法找啊?
比如要找关键字等于5的行,莫非是一行一行的对比?那样就慢死了.即便行是固定的,当数据
量加大时,也会累死的.还请高手指教一下啊.我现在一片懵懂

解决方案 »

  1.   

    是不是一行一行的找呢?或者是按某种算法找啊?
    如无index,则只能一行一行的找,
    有index,则按index找,有二分法,B+数法
    == 思想重于技巧 ==
      

  2.   

    比如要找关键字等于5的行,莫非是一行一行的对比?
    如无index,则只能一行一行的找,
    == 思想重于技巧 ==
      

  3.   

    那样就慢死了.即便行是固定的,当数据量加大时,也会累死的.还请高手指教一下啊.我现在一片懵懂
    如无index,的确很慢
    == 思想重于技巧 ==
      

  4.   

    liuyann基本都对,补充一下:索引分好多类型呢。在数据结构的外部排序中就有大部分基础知识了。
      

  5.   

    看来我很有必要恶补一下数据库基础知识了,谢谢liuyannn的回复.
    这里我还有个疑问,假如数据库中表的行中有一些可变长度的字段,该表
    也有index,那它怎样按索引快速的检索数据啊?
      

  6.   

    还是一样哦,准确的说,以oracle为例。第一步:根据索引找到满足条件的记录的rowid。
    第二步:根据rowid访问物理块获得记录。注意索引类型不同、表结构不同、数据类型不同、数据量不同都可能导致使用不同的执行计划。不能一概而论。帖子http://topic.csdn.net/u/20080122/18/26e50d69-0a07-4064-8839-5342dafd64d3.html中有一些介绍,但是还是要先看看基本知识然后对特定的dbms进行深入了解才行。
      

  7.   

    <<数据库系统概论>>应该是<<数据库系统概念>>吧,我在网上搜了下,
    发现不是国外的教材,有电子书下载吗,hopping....