因为以前逃课的缘故,对数据库知识没有系统的学习,现在已经做了N多项目了,但是很多基本的东西就没弄懂。如:
1 建立索引有助于提高查询效率,但是在UPDATE之后又会全部重建,会影响效率,这样的话如果做CMS到底需不需要建立索引呢?2 如果需要建立索引,是不是应该以 order by 后的字段为索引?3 建立主键是否等于建立了索引?4 老师曾说过第一范式是数据最冗余,但是效率最高的,当时觉得对。但是现在想想不对啊,现在都在讲分布处理,那么多数据全部装进一张表真的比分散在几个表要快吗?5 MYSQL的视图问题,到底是从哪个版本开始支持的?6 使用MYSQL数据库与MS SQLSERVER相比,除了银两少跨平台之外做WEB运用到底还有什么优势?7 是否有办法能将数据库的查询结果对所有线程仅缓存一次?MYSQL对同一线程的缓存的数据何时消亡?

解决方案 »

  1.   

    2.貌似没必要
    3.建立主键不等于建立索引
    5.好像是mysql5
    6.据说mysql更快
      

  2.   

    去看看mysql的手册吧,对你很有帮助的
      

  3.   

    楼主还是去自己学习一下吧,看看MySql的手册
      

  4.   

    第一个问题,我是这么想的,我也是初学。比如你做CMS,文章发布系统,对应文章表是article,你可以再建一张表比如叫artice_index。article表上是完整的文章表,不建索引,发布文章时写入到这张表;
    article_index上是文章索引表,只保留几个要搜索的字段,然后建索引,可以理解为镜像表,定期将article的内容导到article_index上,而article_index主要的任务就是被用户搜索。哈哈,大家评评,这种想法可取吗?
      

  5.   

    onlyguhong(小黄鹂) 主键就是索引吧,我记得哪本书上看到,主键是索引的一种。
      

  6.   

    1 建立索引有助于提高查询效率,但是在UPDATE之后又会全部重建,会影响效率,这样的话如果做CMS到底需不需要建立索引呢?//还是要建立的。读取的次数永远是大于insert的数量的2 如果需要建立索引,是不是应该以 order by 后的字段为索引?//不必要。这个要看你的具体应用了3 建立主键是否等于建立了索引?//不对。4 老师曾说过第一范式是数据最冗余,但是效率最高的,当时觉得对。但是现在想想不对啊,现在都在讲分布处理,那么多数据全部装进一张表真的比分散在几个表要快吗?//理解错误啊!分布式就是把数据分开之后才体现出数据的速度来了。想当然而,如果数据量不够巨大,使用分布式当然会发生效率底下的情况了5 MYSQL的视图问题,到底是从哪个版本开始支持的?//视图……2.XX?好像……6 使用MYSQL数据库与MS SQLSERVER相比,除了银两少跨平台之外做WEB运用到底还有什么优势?
    //优势么,分页是最强的优势了,MS的分页操作起来实在是让人难受的很。然后就是对于普通SQL语句的优化问题了。MySQL在执行之前,大部分都会自己优化的。相对于此MSSQL就要差得多了7 是否有办法能将数据库的查询结果对所有线程仅缓存一次?MYSQL对同一线程的缓存的数据何时消亡?//后面这个我能回答你(读取之后,差不多就被回收了,连连接都被回收了啊!怎么可能保存?),前面的哪个……不知道。
      

  7.   

    onlyguhong(小黄鹂)对于主键的解释好详细,但是,这里面有一个小小的错误。在MySQL中,不管你有没有建立字段名为ID的字段,MySQl都会生成个为ID的字段的。不过致使如果你没有生成名为ID的字段,MySQL不会让你看到而已。