可能因为工作的原因 接触数据库这块比较少,之前都是做程序这块,数据库这块都有专门的人来做 分工都很明细 所以对数据库这一块完全不了解。前段时间 去面试了几家公司 几乎都是在数据库这块挂掉的 连个简单的SQL都写不出来,所以现在决定恶补数据库这块。 
    
   最近又接触到lucene 里面要用到索引 现在想问问数据库大牛们 数据库索引到底是个什么东西,用在哪些地方 有什么优势?

解决方案 »

  1.   

    索引技术(Indexing)是一种快速文件访问技术,它将文件记录在某个或某些域(或称为属性)上的取值与该记录的物理地址直接联系起来,提供了一种根据记录域的取值快速访问文件记录的机制。索引文件是一种利用索引技术支持快速文件访问的文件组织和存取方法。
    索引加快了查询记录却减慢了数据更新速度,本身还占用一定的存储空间。
      

  2.   

    可参考2、6楼1、索引是根据查询语句来建立的;
    2、对于增删改操作多的表尽量少用索引;
    3、对于查询操作多的表尽量多用索引,特别的where条件引用的字段要用4、通常后一次有索引的会比前一次快,之于快多少取决于数据量。比如:100条数据,没有索引时平均需要查询50次(从头到尾逐个比较),有索引则只需要比较大约7次(类似二分查找法);
    如果是1000条数据的话,没有索引时平均需要查询500次,有索引则只需要比较大约11~12次。
    当然对于数据量巨大(超百万行)的数据表,数据库中的索引可能用B+树,那么通常约4次比较就可确定数据范围(在200条以内)。要注意的是查询语句写得不好,系统就无法利用索引,比如:把字段名放在了一个函数中、某些“<>”、等等