数据量较大,一年里约有150万条记录,每篇文章的内容少则几K多则几百K。如将其存入mysql与标题、作者等同一张表,则会占用了很大的空间,会导致后期的操作困难。
(在这:http://topic.csdn.net/u/20110522/12/aa22ab55-b6e1-4d14-884c-1552ef268463.html?94302)将其转为文本存在本地,则面临着全文检索上的困难。文件少倒无所谓,文件多时每次检索都要用PHP去读取这百多万个文件恐怕效率会更差…。不知各位对这种情况是如何解决的?请指点,谢谢!

解决方案 »

  1.   

    几K多则几百K这样的话,完全可以直接放在MYSQL中。放在TEXT字段中即可。
      

  2.   

    没想到贴主跟我遇到同样的问题O(∩_∩)O哈哈~
    解决的话可以像2楼说的那样,直接存进数据库里。如果你认为这样文章内容一多,会使数据库变得庞大导致效率降低,你接受不了的话,可以考虑另外一种方法,就是依旧像你现在这样把文章内容存到文本里,但是在数据库表里加多一个字段:文章概述summary,长度大约在100左右,用来存放这篇文章的简介或者关键词,搜索的时候就不去搜文章内容了,而是直接搜“summary”这个字段。这样在搜索的时候不仅能发挥数据库的性能,而且其实用户在搜索的时候你去搜索全文内容也是不合理的。比如用户搜索“数据库”这个关键词,你的某篇文章中某个地方也出现了这个词,但实际上你这篇文章根本不是介绍数据库相关的,只是无意中提到了。这样的搜索结果想必也不是用户需要的。
      

  3.   


    数据少时是无所谓,但现在太多了。ibdata1文件都已是3G多了,在检索和备份时都觉得很艰难。
      

  4.   

    关于存储 可以考虑用nosql  nosql的优势就就是处理超大量的数据。在可以用nosql  和 mysql的配合,mysql负责逻辑层 存储层交给nosql是不错的解决办法
      

  5.   


    nosql真是个好东西,只是要实现难度太大了,可能得重新设计。