2

只是想知道 Propel 对数据库分片的支持有多好?我正在考虑用 PHP 创建我的应用程序,使用 MySQL 作为数据库服务器,Propel 作为 ORM。

我发现最好从一开始就保持架构的可扩展性,以防我的应用程序起飞。

你怎么看?

4

4 回答 4

4

我认为这是一个非常糟糕的主意。假设您需要对数据进行分片并不是一个好的假设。您事先不知道您将如何扩展。分片是一项非常复杂的业务,需要尽可能避免。这是一个过早优化的淫秽案例。

于 2009-02-15T13:36:06.157 回答
1

我同意 MarkR 的观点,现在担心分片还为时过早,但我不同意应该尽可能避免分片。我会说使用似乎适合您的风格和语言选择的 ORM —— Propel 可能是您的正确选择。即使您的应用程序大获成功,分片也可能不是必需的——您可以使用基于 MySQL 的 DBMS 和一些不错的缓存技术轻松提取 2500 万条记录,因此只需专注于快速查询和设计为了方便 memcache 集成,即使您的应用程序起飞,您也将成为一个快乐的露营者。

祝你好运!

于 2009-02-20T19:35:12.587 回答
1

Propel 通过连接支持开箱即用的分片。在此处查看示例:

http://groups.google.com/group/propel-users/browse_thread/thread/4d19c0668aa17452

于 2010-03-01T09:37:09.363 回答
0

一些数据库分片中间件可以帮助您。例如:Apache ShardingSphere ( https://shardingsphere.apache.org/document/current/en/features/sharding/ )

ShardingSphere 有 2 个适配器,JDBC 和 Proxy。JDBC 是连接数据库的 java 驱动程序,不适合 PHP,但 Proxy 就像数据库(MySQL 或 Postgres)。ShardingSphere-Proxy 可以隔离数据分片和业务逻辑。最好使用第三方中间件来处理常见问题。

于 2021-10-13T01:19:23.640 回答