我正在构建一个大型的网络应用程序,将帮助“地区经理”管理多个地区的多所学校。
总共有大约40万名学生和教师。
除了管理明显的事情,比如成绩等,我们还必须管理出勤(每天)。
我习惯于在较小的规模上构建web应用程序,并将其部署到Heroku。考虑到这种规模的系统,我应该考虑从现在开始使用非关系数据库,还是应该坚持使用PostgreSQL并进行特定的优化,以确保高速和数据完整性?
如果不清楚,主要的问题是在关系型数据库系统中管理这么多表中的这么多记录的系统如此之慢。
另外,如果建议使用关系数据库,我可以做哪些常见的优化来确保速度?最大、最明显的一个是在最常访问的information.....anything上使用索引,否则将非常受欢迎。
谢谢。
附注:我的团队对我们应该做的事情存在分歧,所以你们将在帮助打破平衡方面提供有用的声音:)
发布于 2013-01-02 03:42:48
坚持使用postgresql。为什么其他东西会更好呢?
有了你提供的一些信息,我可以猜测你的表现可能会归结为两件事:
使用rails和可能的redis的正确columns
Postgresql在磁盘上提供了一个数据存储。使用redis缓存页面允许将数据库查询和HTML的渲染部分缓存到内存中,以避免触及磁盘。
发布于 2013-01-02 04:01:18
设计适当的索引是性能体系结构的重要组成部分,但您不是为信息设计索引,而是为查询设计索引。这与关系数据库和非关系数据库之间的选择没有多大关系,因为两者都要求您设计“适当的”索引。有关更多详细信息,请参阅my presentation How to Design Indexes, Really。
发布于 2013-01-02 03:47:01
除了性能之外,请务必考虑安全问题。并不是说NoSql数据库一定不好,但它是不同的。保护非敏感数据的方法可以有所不同。
如果您正在存储任何个人身份信息,请仔细权衡您的选项,如果您不确定差异是什么,请使用您知道如何保护的信息。
此外,考虑隔离数据可能也不会有什么坏处--有些是关系数据,有些不是。如果您有从头开始构建系统的灵活性,那么最适合您的就是最适合您的方案。
建议阅读:
建议查看:
https://stackoverflow.com/questions/14113571
复制相似问题