gpt4 book ai didi

mysql - CakePHP 数据库 - MyISAM、InnoDB 或 Postgresql

转载 作者:行者123 更新时间:2023-11-29 08:23:28 25 4
gpt4 key购买 nike

我一直只在我的所有项目中使用 MyISAM,但在开始下一个项目之前,我正在寻找经验丰富的意见。

我即将启动一个项目,该项目将处理许多表中的数十万行。 (随着时间的推移,几个表甚至可能有数百万行)。该项目主要需要快速读取访问,因为它是一个 Web 应用程序,但快速写入显然也没有坏处。它需要具有很强的可扩展性。

该项目还将处理敏感且重要的信息,这意味着它需要可靠。 MySQL 似乎因忽略验证而臭名昭著。

该项目将使用 CakePHP 作为框架,我相当确定它同样支持 MySQL 和 Postgresql,但如果有人不同意我的观点,请告诉我。

我很想使用 InnoDB,但我听说它的性能很糟糕。 Postgresql 似乎是最可靠的,但也没有 MyISAM 快。

如果我能够将服务器的 MySQL 版本升级到 5.5,InnoDB 会比 Postgres 更安全吗?或者说 MyISAM 仍然比其他的更适合大多数需求并且更具可扩展性?

最佳答案

这真正需要的唯一答案是“不是 MyISAM”。如果您关心您的数据,则不会。毕竟,/dev/null具有真正令人惊叹的性能,但它也不能满足您的可靠性要求;-)

其余的是通常的 MySQL 与 PostgreSQL 观点,每次有人询问新风格时我们都会关闭它,因为它确实不会带来太多有用的东西。

比您的数据库选择更重要的是您如何使用它:

  • 您是否在 Redis 或 Memcached 等内容中缓存经常出现的数据,这些数据可能会有些过时?

  • 您是否避免从低效的 ORM 中进行“n+1”选择,而转而采用较为合理的连接?

  • 您是否避免选择大量不需要的数据?

  • 您是否进行选择性缓存失效(我使用 LISTENNOTIFY 来实现此目的),或者只是在发生更改时刷新整个缓存?

  • 您是否最小化分页,并且当必须分页时,根据上次看到的 ID 而不是偏移量进行分页? SELECT ... FROM ... WHERE id > ? ORDER BY id LIMIT 100可以比 SELECT ... FROM ... ORDER BY id OFFSET ? LIMIT 100 快得多.

  • 您是否监控查询性能并手动调整有问题的查询、创建适当的索引等?

(标记社区维基,因为我对这个问题进行了接近投票,并且除非是 CW,否则进行接近投票和回答似乎不合适)。

关于mysql - CakePHP 数据库 - MyISAM、InnoDB 或 Postgresql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18648399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com