存储长文本片段

时间:2012-03-18 07:26:41

标签: php mysql search storage

我正在编写在线笔记Web应用程序,并且希望支持从200个字符到很长字符(〜超过10000个字符)的笔记。这些注释应该是可搜索的。

  • 如何将文本注释存储在我的数据库中,如果我对所有注释使用相同的表格,它会减慢我的应用程序吗?
  • 我应该实现多种类型的笔记(如短,长,很长等)并为它们使用不同的表格吗?
  • 对于长达5000个字符的笔记,我应该使用文件而不是数据库条目吗?
  • 如何通过这些笔记处理文本搜索(如果我将它们存储在不同的表和/或文件中)?

3 个答案:

答案 0 :(得分:4)

对于MySQL来说,10,000个字符并不是那么大。您可以使用TEXT列存储最多2个 16 字节。如果您的文本是ASCII,这就足够了。如果是Unicode,则可以使用LONGTEXT字段每条记录最多存储2个 32 字节。

我认为,设计不同音符长度的单独表格是一个坏主意。它会使查询变得更加困难。

MySQL也支持full text searching。如果创建ISAM表,则可以在notes字段上创建FULLTEXT索引以加快搜索速度(相当多)。有关详细信息,请在manual page for CREATE TABLE中搜索 FULLTEXT

答案 1 :(得分:4)

使用一个表格,其中包含一个TEXT列。这非常合适,MySQL可以毫不费力地处理它。在其上放置FULLTEXT索引,以获得中高级搜索功能。

答案 2 :(得分:2)

  • 没有
  • 没有
  • 没有
  • 在mysql中使用全文搜索,或者仅使用'%search%'这会慢一些。

这种大小的文档是对现代数据库的一种轻视,只是构建它并且不用担心它。