请教几个关于索引的问题:
1.建一个包含几个字段的索引,和分别对这几个字段建索引有什么区别?两个SQL语句的where条件中分别用到M和N个字段,建一个包含M和N的索引和分别建两个分别包含M和N的索引哪个更好?
2.建索引可以提高查询速度,但会减弱更新和插入的性能,当既有查询又有插入,还建索引吗?
3.索引中字段的先后顺序有没有关系?
4.某表有1万条纪录,某字段中的值大概有两三种,需要建索引吗?
  某表有1万条纪录,某字段中的值大概有7千种,需要建索引吗?
请赐教。

解决方案 »

  1.   

    我回答两个:
    2.建索引可以提高查询速度,但会减弱更新和插入的性能,当既有查询又有插入,还建索引吗?
      A: 要看查询和插入的频率,建索引的原则之一就是对经常要在where条件中出现的字段建立索引。
    4.某表有1万条纪录,某字段中的值大概有两三种,需要建索引吗?
      某表有1万条纪录,某字段中的值大概有7千种,需要建索引吗?  A:仅从记录数和值数的比例上说,前一种没必要,后一种有必要。
      

  2.   

    1.建一个包含几个字段的索引,和分别对这几个字段建索引有什么区别?两个SQL语句的where条件中分别用到M和N个字段,建一个包含M和N的索引和分别建两个分别包含M和N的索引哪个更好?
    A:联合索引的效率要高于分别建索引.不同的sql语句用到不同的字段,分别建比较多好些.如果是存在共用的出现频率比较高的字段,最好以之为联合索引.2.建索引可以提高查询速度,但会减弱更新和插入的性能,当既有查询又有插入,还建索引吗?
    A:频率3.索引中字段的先后顺序有没有关系?
    A:理论上是有4.某表有1万条纪录,某字段中的值大概有两三种,需要建索引吗?
      某表有1万条纪录,某字段中的值大概有7千种,需要建索引吗?
    A:后者有
      

  3.   

    1.建一个包含几个字段的索引,和分别对这几个字段建索引有什么区别?两个SQL语句的where条件中分别用到M和N个字段,建一个包含M和N的索引和分别建两个分别包含M和N的索引哪个更好?
      
      复合索引的检索必须按照索引建立的字段顺序检索才能执行索引查找。2.建索引可以提高查询速度,但会减弱更新和插入的性能,当既有查询又有插入,还建索引吗?  通常,检索和增/删/改操作的比例在80:20及以上时,建议建立索引3.索引中字段的先后顺序有没有关系?  如果是复合索引,前后顺序肯定与检索的效率有关系4.某表有1万条纪录,某字段中的值大概有两三种,需要建索引吗?
      某表有1万条纪录,某字段中的值大概有7千种,需要建索引吗?
      
      前一个表中的该字段没有建索引的必要,后者建议建一个索引