【问题标题】:Benefits, etc of using mySQL over SQLite (RoR)在 SQLite (RoR) 上使用 mySQL 的好处等
【发布时间】:2011-03-20 14:46:03
【问题描述】:

我现在正在为我的公司构建一个 Web 应用程序,无论出于何种原因,我都无法让 mySQL 在我的 Mac 上运行我的 Ruby 安装 (OSX 10.5)。 SQLite 工作正常,所以现在使用 SQLite 会不会有问题,所以我可以开始工作,然后在部署时更改我的 database.yml 文件以指向 mySQL 数据库(假设我重新运行迁移等)?

另外,在 RoR 应用程序中使用 mySQL 而不是 SQLite 有哪些优点/缺点?我过去一直默认使用 mySQL,但从来没有直接学习过 SQL(总是通过 ActiveRecord),也从来没有过多考虑过其中的区别。

【问题讨论】:

  • 到目前为止大家的答案都很好!非常感谢!

标签: mysql ruby-on-rails sqlite activerecord


【解决方案1】:

MySQL/PostrgreSQL/等的好处

优点

  • 更强大的数据类型,这意味着更清洁的数据
  • 能够存储更多数据
  • 更好地扩展到更大的数据集
  • 空间支持(想想 GPS)
  • 全文搜索 (FTS)

缺点

  • 更强的数据类型意味着数据将被验证,错误的数据会导致错误
  • 对于资源有限的设备(iPhone、Blackberry、iPad 等)来说,不是一个好的候选者(如果可能的话)

如果可以选择,我会选择 PostgreSQL v8.4+ 而不是 MySQL。 MySQL 的功能落后于其他主要的 SQL 数据库替代品。

【讨论】:

  • @jhominal:对于不需要验证数据的人来说,是的。我是从 OP 的角度考虑的,而不是你我的 :)
  • 如果您故意想将多个数据类型放在同一列中,这是一个骗局。
【解决方案2】:

您可能遇到的最大性能问题是表锁。不幸的是,SQLite 没有行级锁定。因此,如果您的应用程序要运行多个进程/线程(如多个 Web 用户),则可能某些线程将无法执行 SQL 操作。出于这个原因,我会选择 MySQL - 或者 Postgresql。

【讨论】:

    【解决方案3】:

    应该没有问题,因为 MySQL 应该具有 SQLite 功能的超集,并且正如 @Sean 指出的那样,性能只会提高。试着确保你没有使用任何过于特定于 SQLite 的东西(我主要是 SQL Server 和 Oracle 的人,所以不知道那会是什么,如果有的话)。请记住,SQL 中的“S”代表结构化,而不是标准;)

    保罗。

    【讨论】:

      【解决方案4】:

      SQLite 非常适合桌面或智能手机应用程序(“嵌入式”使用)。但是,如果您计划构建 Web 应用程序,强烈建议您使用非嵌入式 DMS,例如 MySQL。好处数不胜数,例如 3rd 方设计和分析应用程序、性能等......

      【讨论】:

        猜你喜欢
        • 2011-07-09
        • 1970-01-01
        • 1970-01-01
        • 2016-06-27
        • 2023-04-02
        • 1970-01-01
        • 2011-06-12
        • 2012-05-02
        • 2023-03-21
        相关资源
        最近更新 更多