【问题标题】:Can MySQL have one file per database?MySQL 可以每个数据库有一个文件吗?
【发布时间】:2012-07-14 23:19:45
【问题描述】:

我喜欢 Microsoft Access .mdb 文件在单个文件中包含完整数据库这一事实,例如,foo.mdb 可能包含一个数据库的所有数据、表结构和查询。

我想转到 MySQL。我知道 MySQL 可以使用许多文件结构。 MySQL可以复制一个数据库=一个文件的单文件模型吗?

【问题讨论】:

  • SQLite 数据库是单个文件,但如果您想要 MySQL,SQLite 可能没有您的需求那么强大或功能丰富。
  • 在这种情况下,我不认为 SQLite 是对 MS Access 的改进。如果您的用户在本地进行编辑,MS Access 提供了一个非常快速的前端开发,而您必须使用 SQLite 和 MySQL 为表单、报告等提供额外的包。为什么您希望从 MS Access 迁移,它似乎是您的要求的正确选择?
  • 我正在考虑从 MS Access 迁移到 MySQL,因为我正在将站点从 MS IIS 迁移到 Linux。我目前正在运行 IIS 并使用 ASP Classic 中的“Microsoft ActiveX 数据对象 2.8 库”连接到 .mdb 文件。我正在尝试找出我在 Linux/PHP 世界中的最佳选择。

标签: mysql ms-access


【解决方案1】:

简短回答:不。

长答案:这取决于存储引擎。

innodb 存储引擎管理的所有 dbs 都存储在一个文件中。如果服务器上有 3 个 innodb 数据库,它们都将存储在一个文件中。这可以通过 innodb_file_per_table 进行更改

MYISAM 存储引擎将 db 的每个表存储在两个单独的文件中:数据和索引。

为什么还需要一个文件? MySQL 有一个内置的复制机制,你不必担心。

【讨论】:

  • 关于“innodb_file_per_table”,这意味着 file-per-table 而不是 file-per-database,是吗?
  • 是的,更多信息请参见dev.mysql.com/doc/refman/5.0/en/…
  • "为什么你仍然需要一个文件?"这是一个方便的模型,我的非技术客户可以理解。
  • MySQL 应该在(网络)服务器上运行。非技术客户可能永远不会看到它。他们为什么在乎?如果你试图使 MySQL 安装可移植,你会遇到很多问题,除了 db 存储在多个文件中。 MySQL 根本不是为这种方式工作而构建的。
  • 那么 MySQL 绝对不是你的选择。你应该试试 SQLite。它类似于 ms 访问,因为它有一个独立的 gui 应用程序来编辑 dbs(与 mysql 不同),并且 db 存储在一个文件中,除了复制之外不需要任何操作(与 mysql 不同)在不同的机器上工作。
猜你喜欢
  • 1970-01-01
  • 2015-05-10
  • 1970-01-01
  • 1970-01-01
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
  • 2022-11-16
  • 2011-06-13
相关资源
最近更新 更多