【问题标题】:Is this a good way to use mysql?这是使用mysql的好方法吗?
【发布时间】:2011-04-08 08:31:20
【问题描述】:

我正在构建一个网络应用程序,并且正在考虑如何构建数据库。

应用程序将通过关键字提供信息,然后它将检索这些关键字的信息并将其与日期戳一起保存到数据库中。信息将来自不同的来源,例如来自 yahoo 的结果数量、包含该关键字的上个月的 diggs 等。

所以我在想一个简单的方法是有一个带有 id 和关键字列的表,其中将存储关键字,另一个表用于所有数据的 id(与关键字相同),日期戳, 数据名称, 数据内容。

这是使用 mysql 的好方法,还是会以某种方式使查询变慢或变慢?我应该为我想使用的每种类型的数据建立表格吗?我主要是在寻找应用程序的良好性能。

我只想为数据使用一个表的另一个原因是我可以轻松添加更多 data_name(s) 而无需接触数据库。

【问题讨论】:

  • 没有好办法使用MySQL。使用 PostgreSQL。它更加健壮,您不必为了使用事务而更改数据库表定义,而且它不受 Oracle 的威胁。

标签: php mysql database web-applications


【解决方案1】:

我还有另一个建议:将您的内容编入索引。如果您打算存储内容并能够使用关键字进行搜索,则使用 mysql 存储文档的详细信息,如作者、文本和其他一些信息,并使用Lucene 创建索引。 Lucene 最初是为 Java 开发的,但有多种语言的端口,PHP 也不例外。

您可以使用Zend framework 管理 Lucene 索引,毫不费力地浏览documentation 或在线查找教程。这个推荐的事情很简单: - 您将大大缩短搜索时间 - 您的关键字接受度会更高,Lucene 将赋予搜索能力

希望能帮上忙! 祝你好运!

【讨论】:

    【解决方案2】:

    这是使用mysql的好方法还是 这可以以某种方式进行查询吗 慢一点还是什么?我应该建造吗 我想要的每种数据类型的表格 采用?我主要是在寻找一个好的 应用程序的性能。

    许多大型 MySQL 玩家(例如 flickr)使用 MySQL 作为简单的 KV(键值)存储。

    此外,如果您关心性能,您应该将数据缓存在 memcached/redis 中(没有什么可以胜过内存)。

    【讨论】:

      【解决方案3】:

      第二个表,即包含各种关键字信息的表,该表中id列可以作为第一个表id列的外键

      【讨论】:

      • 确实如此,您可以使用以下方式链接它们:SELECT * FROM table1, table2 WHERE table1.id = table2.id
      猜你喜欢
      • 2012-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-19
      • 2019-12-12
      • 2010-11-22
      • 1970-01-01
      • 2011-07-23
      相关资源
      最近更新 更多