2

我打算创建一个类似游戏管理器的小型在线DD3:

  • 下载客户端并与朋友点对点游戏
  • 与大家在线
  • 或者简单地用它为家庭游戏创建你的角色表。

会有(非常)基础网格和二维“图形”。大多数情况下,它将用于网格图和字符表持久性。另外,我不想花太多时间在上面。

我是一个经验丰富的程序员。我也习惯于 DB 调优和存储过程。然而,这些任务非常耗时。我打算用和ORM。

但是,我已经看到许多工业项目因此而表现不佳。大多数情况下,这种差异是惊人的。所以这是我的观点:

  1. 如果 ORM 会破坏我的应用程序的性能,如何确定(精确的指南/方法)?哪些参数最重要(大小?表数?查询数?...)
  2. ORM 微调最终是否比简单的 odl school DB 调优更耗时?

请在你的答案非常准确。我会花时间非常仔细地阅读它们,并检查事实和例子。

4

1 回答 1

0

与正确设计的数据库相比,ORM 的性能总是会更差(优化程度会降低)。如果您不喜欢 SQL 并计划迁移到另一个 SQL 引擎,您只会获得更轻松/更快的开发。如果您不打算从一个 SQL 引擎迁移到另一个 SQL 引擎,我建议不要使用 ORM。只有当你真的讨厌 SQL 时,你才能使用它。

如何决定:

  1. 你讨厌 SQL:为 ORM +1。
  2. 你喜欢对象:ORM +1。
  3. 您不想使用一些非 SQL 解决方案:+1 表示 ORM。
  4. 您不需要统计信息或合并许多实体(表/对象)的任何表:ORM 为 +1。
  5. 您计划将来迁移到另一个 DBMS:ORM(或至少一些 SQL 框架)+1。

您会发现这不是应用程序中将运行多少查询的问题,而是高效合并表(以及多次运行低效查询)的问题。即使合并两个表在 ORM 中的效率也会降低(例如,当您只需要一个表和关系表中的 ID 时,ORM 可能会使用 3 个表)。所以是的 - 与 SQL 相比,微调 ORM 是一件可怕的事情(你最终会用半 SQL 编写,即使这样也不会给你同样的控制水平)。

于 2013-05-03T11:21:26.510 回答