【发布时间】:2014-01-28 16:56:24
【问题描述】:
我正在使用 CodeIgniter 开发一个 php 应用程序。我打算将单个 MySQL 数据库拆分为多个 sqlite 数据库。也就是说,一个处理身份验证的数据库(MySQL/PostgreSQL/SQLite)和每个用户一个保存与用户相关信息的 sqlite 数据库。我不使用任何连接,它的读取次数多于写入次数。
为了提高速度,将数据库拆分为多个 sqlite 数据库是个好主意吗?另外,扩展到多台服务器时会不会有问题?我可以根据用户使用重定向来指向正确的服务器。
编辑: 决定使用 MariaDB 作为我所有用户的服务器。
【问题讨论】:
-
一般来说:不,这是个糟糕的主意。您是否有任何特别具体的场景可以证明多个 SQLite 数据库比单个 MySQL 服务器或其集群具有明显的优势?如果没有:它不会更快。
-
为什么不只在用户表中添加一行?这对你有那么糟糕吗?
-
当数据库变大时,索引会变大,可能会降低整个网站的速度。通过将数据库拆分为多个文件,增长率会更低。此外,如果我必须移动到不同的服务器,我可以使用相同的数据库,而不是在具有当前转储的新服务器上重新创建。
-
MySQL 已被证明可以很好地处理许多 TB 范围内的数据库。当你达到那个尺寸时开始担心。此外,索引的工作是增长,这就是他们所做的。这并不意味着他们变得越来越慢。即使这样,也有处理巨型数据库的解决方案。将它们拆分成更小的 SQLite 数据库并不是解决办法。在你开始担心之前证明这是一个问题。
-
您是否分析过如何在不清除现有数据的情况下处理数据库更改的部署?恕我直言,这是一个关键点。
标签: php mysql database sqlite codeigniter