我已经为自己的需要建立了学校管理系统。在学年结束时,表格的大小从〜200行到〜30,000行/。
我的一些朋友已经看到了该系统,他们敦促我将其提供给其他学校。我现在至少要尝试一些学校。考虑到我当前的体系结构和共享托管,我必须将所有学校存储在单数据库中,因此有两个问题困扰我:
我不知道将我和其他10所学校的所有学生,出勤,付款等信息存储在单个db中的共享表中是否明智。我最好问自己,而不是给自己惹麻烦。
任何建议都值得欢迎:)
答案 0 :(得分:1)
过早的优化是万恶之源(或至少大多数 它)
您现在不必为此担心。开始运行您的应用程序,并在进行扩展时确定瓶颈,然后尝试找到解决方案。
MySql可以轻松处理具有300,000行以上的表吗?
首先,使用最佳规范原则来构造表和关系。 MySQL非常擅长处理高达10,000,000的行。但这还取决于您如何索引/查询数据。在您经常用于查找的列上使用适当的数据库索引。要“喜欢”查询是一个很大的缺点,但是如果必须的话,请使用搜索引擎(例如“ elastic”,“ solr”)。
该系统目前基于Yii2,我已经对其进行了优化 性能-您认为尝试或更好地朝着这个方向努力是明智的 每个学校都有专用服务器和独立数据库的解决方案?
我对Yii2知之甚少,但是php中肯定有更好的框架,您可以尝试例如。 larvel(this will give you a better idea)。当然,最好是将这个应用程序托管在专用服务器上。为什么当您可以从digitalocean获得5美元的私人VPS时浪费金钱。
我不知道存储所有学生,出勤,付款是否明智 来自我和其他10所学校的信息,跨单个共享表 D b。我最好问自己,而不是给自己造成麻烦。
将学生,出勤,付款信息存储在同一数据库中绝对没有问题,只需正确构造表即可。