【发布时间】:2013-06-03 21:35:14
【问题描述】:
我正在开展一个项目,该项目应该从每个表使用一个数据库文件中受益匪浅,主要是因为我尝试使用avoid having the database grow too large,但也因为file locking issues。
我曾想过使用ATTACH statement 来为我的所有表创建一个“虚拟”数据库,但我刚刚发现虽然附加数据库的上限是 62(这对我来说完全可以接受),但默认值附加数据库的限制实际上是 10,来自SQLite limits page:
附加数据库的最大数量
ATTACH 语句是一个 SQLite 扩展,它允许两个或多个 数据库关联到相同的数据库连接和 就像它们是单个数据库一样运行。的数量 同时附加的数据库仅限于 SQLITE_MAX_ATTACHED 默认设置为 10。 SQLite 中的代码生成器使用 位图来跟踪附加的数据库。这意味着 附加数据库的数量不能超过 62。
由于我需要支持超过 10 个表,我的问题是,如何将 SQLITE_MAX_ATTACHED 变量从 PHP 设置为更高的值(使用 PDO 和 SQLite 3)?
【问题讨论】:
-
看起来是开始使用数据库的绝佳时机。
-
@YourCommonSense:你和你的智慧......
-
@AlixAxel:您是否考虑过切换到真正的数据库,例如 PostgreSQL 或 MySQL?
-
@mvp:我没有,因为我想要做的事情的全部内容都围绕着 SQLite,我可以详细说明,但我宁愿不这样做。不想表现得那么苛刻,这是一个我需要一个客观答案的问题(或者是一个解决方案 - 也许使用 PRAGMA 或一些未记录的 PHP/PDO 函数,或者不是)我所要求的,而不是你所要求的认为我可能需要。 SQLite 是一个真正的(尽管是无服务器的)数据库。
-
@AlixAxel:我知道你来自哪里。不要误会我的意思——我绝对喜欢 SQLite,因为它在正确使用时可以做什么,我同意它是真正的数据库。话虽这么说,有时你应该退后一步,重新评估你在做什么——如果你愿意的话,跳出框框思考。如果您真的遇到 SQLite 锁定问题,那么 PostgreSQL 可以完美解决这个问题。