【发布时间】:2009-11-06 19:39:29
【问题描述】:
我知道,关系数据库是一种数据库,其中一个表中的字段链接到其他表中的行,类似于这样。
但我不明白这对我作为一名网络开发人员意味着什么!
据我所知,带有连接和嵌套选择的查询会降低性能(尤其是带有数十个连接的 drupal 样式查询)。更重要的是,对 DB 的任何查询都是瓶颈,然后您有很多用户,您必须缓存每个选择请求。
如果你缓存每个选择请求,最好缓存简单的请求而不是复杂的。您可以缓存“select * from tbl1 where id = 123”和“select * from tbl2 where id = 456”或“select * from tbl1, tbl2 where ...”,但如果选择第二种方式,您将需要缓存对象的每个组合 - 这并不酷。
好的,现在我们只使用非常简单的查询,例如“select * from tbl1 where id = 123” of "select id from tbl1 order by id limit 0, 30" 并缓存它们(或者我们可以只缓存第一种类型查询,无论如何)。有查询而不是简单的 INSERT、DELETE 和 UPDATE 都是我们需要和使用的!
正如我们所见,所有关系逻辑都使用应用程序的主要语言,而不是 SQL。那么,为什么我们需要所有这些关系性的东西呢?他们的意思是什么? “关系”类型有什么其他类型没有但需要的东西?如果我们不使用关系特性,为什么每个人仍然使用 MySQL 或任何关系数据库,即使他关心性能?
这种类型的数据库已经成为一种标准。为什么?我没有任何线索。我几乎没有听说过有人使用非关系型数据库,除了 GAE 中的 on。
我错过了什么吗?
【问题讨论】:
-
买一本关于数据库的书,读一读规范化。
-
@Ken White,你为什么不打开网站上的每个问题并写下:“买一本关于[主题]的书,然后阅读它”?
-
因为规范化是唯一真正重要的东西?
标签: relational-database database