Ruby on rails 对于管理整个学校区域的大型系统,关系数据库还是非关系数据库?
我正在构建一个大型web应用程序,它将帮助“地区经理”管理多个地区的多所学校 总共约有40万名学生和教师 除了管理诸如成绩等明显的事情外,我们还必须管理出勤(每天) 我习惯于以较小的规模构建web应用程序,并将其部署到Heroku。考虑到这样一个规模的系统,我应该从现在开始考虑使用非关系数据库,还是应该坚持使用PostgreSQL并进行特定的优化以确保高速和数据完整性 如果不清楚的话,主要的问题是在关系数据库系统中,系统在管理这么多表中的这么多记录时速度太慢 另外,如果建议使用关系数据库,我可以做哪些常见的优化来确保速度?最大、最明显的一个是对最常访问的信息使用索引……任何其他类似的方法都将不胜感激 谢谢Ruby on rails 对于管理整个学校区域的大型系统,关系数据库还是非关系数据库?,ruby-on-rails,database-design,relational-database,non-relational-database,Ruby On Rails,Database Design,Relational Database,Non Relational Database,我正在构建一个大型web应用程序,它将帮助“地区经理”管理多个地区的多所学校 总共约有40万名学生和教师 除了管理诸如成绩等明显的事情外,我们还必须管理出勤(每天) 我习惯于以较小的规模构建web应用程序,并将其部署到Heroku。考虑到这样一个规模的系统,我应该从现在开始考虑使用非关系数据库,还是应该坚持使用PostgreSQL并进行特定的优化以确保高速和数据完整性 如果不清楚的话,主要的问题是在关系数据库系统中,系统在管理这么多表中的这么多记录时速度太慢 另外,如果建议使用关系数据库,我可以
另外,我的团队在我们应该采取的措施上存在分歧,所以你们将提供一个有用的声音来帮助平衡:)坚持使用postgresql。为什么还有更好的呢 根据您提供的少量信息,我可以猜您的表现可能会归结为两件事:
Postgresql提供了磁盘上的数据存储。使用ReDIS缓存页面可以将数据库查询和HTML的渲染部分缓存在内存中,以避免触摸磁盘。
除了性能外,请务必考虑安全性问题。NoSql数据库并不一定是坏的,但它是不同的。保护非敏感数据的方法可能有所不同
如果您正在存储任何可识别的个人信息,请仔细权衡您的选择,如果您不确定差异是什么,请使用您知道如何保护的信息同样,考虑分离数据——一些关系的和一些不相关的数据可能并不有害。如果您可以灵活地从头开始构建系统,那么在您的情况下最适合您的就是最适合您的
建议如下:- (我喜欢OWASP!)
顺便说一句,在容错、缓存和其他方面有很多考虑因素,它们对性能的影响比SQL和NoSQL更大。顺便说一句,并不是所有的关系数据库引擎都是相同的(也不是所有的NoSQL数据存储都是……)您希望存储多少数据?它将是什么样的数据?有多少张桌子?有几十张桌子。数据将是各种类型的(从常规字符串到整数再到布尔数据)。几乎任何(和所有)类型的数据,你可以想象,一个地区的学区管理员将要存储。从每个学区每个学生的出勤率到分数,再到支付了全额学费的学生,再到两者之间的一切。我只是计算了旧系统中的表数(原来的系统是用Rails 2.x编写的,所以我将从头开始重新编写)。该系统有52个表,我被告知他们希望能够捕获更多数据。所以,不用说……这是一个非常复杂的数据集。有很多文章强调了NoSql安全性的优点,但我现在发现的所有文章都需要注册。很抱歉不全是坏事。我只是说这是不同的,在你的情况下,我敢打赌会有大量的敏感数据。你说得很对。这里有一堆敏感数据——至少,如果数据落入坏人手中会很烦人。因此,我认为这是我最好的选择——但你能给我更多关于我为什么要使用Redis的细节吗?你说我应该坚持使用PostgreSQL,但你建议使用redis?这只是为了存储缓存吗?@marcamillion请参阅Updateso,这样我就不会误用和混淆术语了……Redis可能是memcached的替代品?还是会用于其他用途?@marcamillion肯定其中任何一种都能起作用,redis给了你更多的灵活性好吧……我只是想确定我知道你要去哪里。是的,这就是我心目中的建筑。谢谢你为我确认!谢谢你的链接。我一定会记住的。