php - 一个数据库或单独数据库中的所有客户?

标签 php mysql yii2

<分区>

我根据自己的需要构建了一个学校管理系统。表格的大小范围从大约 200 行到大约 30,000 行/在学年末/。

我的一些 friend 已经看到了这个系统,他们敦促我将它提供给其他学校。我现在至少想在几所学校尝试一下。考虑到我当前的体系结构和共享主机,我必须将所有学校存储在单个数据库 中,因此有 2 个问题困扰着我:

  1. MySql 能否轻松处理超过 300,000 行的表?
  2. 该系统目前基于 Yii2,我已经对其进行了优化以实现最佳性能 - 您认为尝试或更好地为每所学校提供专用服务器和独立数据库的解决方案是否明智?

我不知道将我和其他 10 所学校的所有学生、出勤、付款等信息存储在单个数据库中的共享表中是否明智。与其给自己添麻烦,还不如问问。

非常欢迎任何建议:)

最佳答案

premature optimization is the root of all evil (or at least most of it) in programming

你现在不应该担心这个。开始运行您的应用程序并在扩展时找出瓶颈,然后尝试找出解决方案。

Can MySql easily handle tables with >300,000 rows?

首先,使用最佳规范化原则来构建表和关系。 MySQL 非常擅长处理多达 10,000,000 行的行。但这也取决于您如何索引/查询数据。在您经常用于查找的列上使用适当的数据库索引。强烈反对“喜欢”查询,但如果必须,请使用(elastic,solr)之类的搜索引擎。

The system is based on Yii2 at the moment, I've optimized it for max performance - do you think it's wise to try or better work towards solution with a dedicated server and separate db for each school?

我对 Yii2 知之甚少,但肯定有更好的 php 框架可用,您可以尝试一下,例如。幼虫(this will give you a better idea)。当然,最好是将此应用程序托管在专用服务器上。当您只需 5 美元就可以拥有来自 digitalocean 的私有(private) VPS 时,为什么还要浪费钱呢? .

I don't know if it's wise to store all students, attendance, payments etc info from my and 10 others schools across shared tables in single db. I'd better ask than cause trouble to myself..

将学生、出勤、付款信息存储在同一个数据库中绝对没有问题,只需正确构建表格即可。

关于php - 一个数据库或单独数据库中的所有客户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51139289/

相关文章:

php - 登录系统无法使用 php 和 mysql 工作

mysql - 无效参数编号 :number of bound variables does not match number of tokens

php - 我有一个像 Array ( [122] => 2 [123] => 3 [124] => 6 ) 一样动态的数组,我想通过这些数组值从数据库中获取记录

php - 在 Yii2 中连接表

php - 如何在基于另一查询结果显示一个查询结果的表中进行复选框?

php - Laravel 5 中用于管理员或身份验证的 Laravel 中间件

mysql - Yii2::如何更改现有的枚举列表?

php - 无法在 Windows 7 中打开输入文件 composer.phar

php - 您能否发布有关如何将 PHPUnit 与 NetBeans 结合使用的示例?

javascript - 使用 jQuery 和 PHP 传递参数的 Tableau Embed