数据库设计中,文章的内容如何存储?

free212 2011-05-23 12:37:13
数据量较大,一年里约有150万条记录,每篇文章的内容少则几K多则几百K。

如将其存入mysql与标题、作者等同一张表,则会占用了很大的空间,会导致后期的操作困难。
(在这:http://topic.csdn.net/u/20110522/12/aa22ab55-b6e1-4d14-884c-1552ef268463.html?94302)

将其转为文本存在本地,则面临着全文检索上的困难。文件少倒无所谓,文件多时每次检索都要用PHP去读取这百多万个文件恐怕效率会更差…。

不知各位对这种情况是如何解决的?请指点,谢谢!
...全文
2559 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
t00210201 2012-08-21
  • 打赏
  • 举报
回复
文字的格式又如何保存呢?
free212 2011-05-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 rucypli 的回复:]
单独内容表和其他属性分开
[/Quote]
不一样还是占用着数据库空间嘛。
free212 2011-05-24
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jig68 的回复:]
关于存储 可以考虑用nosql nosql的优势就就是处理超大量的数据。

在可以用nosql 和 mysql的配合,mysql负责逻辑层 存储层交给nosql是不错的解决办法
[/Quote]

nosql真是个好东西,只是要实现难度太大了,可能得重新设计。
iamjig 2011-05-23
  • 打赏
  • 举报
回复
关于存储 可以考虑用nosql nosql的优势就就是处理超大量的数据。

在可以用nosql 和 mysql的配合,mysql负责逻辑层 存储层交给nosql是不错的解决办法
free212 2011-05-23
  • 打赏
  • 举报
回复
如果后台录入人员愿意在发布时填写几个关键词那就太好了,实际又高效,可是他们都说这样太麻烦。
free212 2011-05-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fengjunkuan2006 的回复:]
没想到贴主跟我遇到同样的问题O(∩_∩)O哈哈~
解决的话可以像2楼说的那样,直接存进数据库里。

如果你认为这样文章内容一多,会使数据库变得庞大导致效率降低,你接受不了的话,可以考虑另外一种方法,就是依旧像你现在这样把文章内容存到文本里,但是在数据库表里加多一个字段:文章概述summary,长度大约在100左右,用来存放这篇文章的简介或者关键词,搜索的时候就不去搜文章内容了,而是直接搜“s……
[/Quote]

是啊,我有考虑过这个方法。也有几个网友提过,这方法难就难在如何提取一篇文章的关键词,提取不充分的话怕会检索不到。
free212 2011-05-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 acmain_chm 的回复:]
几K多则几百K

这样的话,完全可以直接放在MYSQL中。放在TEXT字段中即可。
[/Quote]

数据少时是无所谓,但现在太多了。ibdata1文件都已是3G多了,在检索和备份时都觉得很艰难。
  • 打赏
  • 举报
回复
没想到贴主跟我遇到同样的问题O(∩_∩)O哈哈~
解决的话可以像2楼说的那样,直接存进数据库里。

如果你认为这样文章内容一多,会使数据库变得庞大导致效率降低,你接受不了的话,可以考虑另外一种方法,就是依旧像你现在这样把文章内容存到文本里,但是在数据库表里加多一个字段:文章概述summary,长度大约在100左右,用来存放这篇文章的简介或者关键词,搜索的时候就不去搜文章内容了,而是直接搜“summary”这个字段。这样在搜索的时候不仅能发挥数据库的性能,而且其实用户在搜索的时候你去搜索全文内容也是不合理的。比如用户搜索“数据库”这个关键词,你的某篇文章中某个地方也出现了这个词,但实际上你这篇文章根本不是介绍数据库相关的,只是无意中提到了。这样的搜索结果想必也不是用户需要的。
ACMAIN_CHM 2011-05-23
  • 打赏
  • 举报
回复
几K多则几百K

这样的话,完全可以直接放在MYSQL中。放在TEXT字段中即可。
rucypli 2011-05-23
  • 打赏
  • 举报
回复
单独内容表和其他属性分开

56,681

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧