【发布时间】:2015-01-21 12:56:52
【问题描述】:
我有一个 MySQL 托管和容量规划问题。我想知道托管以下类型和大小的 MySQL 数据库的最低托管要求:
背景:我有一个金融行业的客户,他购买了一个定制软件 CMS 平台,用 PHP 编写并带有 MySQL 数据库。
他们目前的解决方案没有任何报告,提供它的软件供应商只允许他们使用一些 PHP 页面来导出表格的全部内容,然后客户必须在 Excel 中手动操作以获得他们的业务报告。
供应商不允许他们按顺序访问他们的实时数据库 运行 Crystal Reports 说这对数据库有风险,宁愿他们购买昂贵的数据库复制解决方案;所以 客户继续对整个表执行繁琐的手动导出 每天。
数据库: 数据库目前有 90MB 大小,上面有一个自定义的 9 个月大的 PHP 解决方案。客户无权访问它,因为它由他们当前的供应商托管。总共有 43 个表,其中一个 - 一个巨大的日志表占用了 99% 的数据库大小。
包含业务数据的前四个表大小是小表;
- 34.62 MB
- 13.79 MB
- 8.46 MB
- 7.59 MB
绝大多数表都是简单的数据值查找表,只有几行。
然而,数据库中最大的表是一个 1400MB 大小的大型日志表。仅此表就占整个数据库大小的 99.9% 以上。
问题:考虑到解决方案(尽管有日志表)非常小,只有少数员工通过一些简单的 PHP 表单进行数据输入,运行 Crystal Reports 是否存在实际问题在生产中针对这样的数据库?请记住,白天有时(实际上是一天中的大部分时间)根本不使用此数据库。例如午餐时间和非工作时间。
供应商坚持认为,查询实时数据对企业来说存在根本风险,并且针对该数据库运行 Crystal Reports 可能会导致“实时数据库崩溃,企业失去运营”。
客户也渴望拥有一个实时仪表板;这可以用一个非常小的 SQL 查询来编写,以从上面列出的那些小表中聚合一些数字。
我通常使用 SQL Server 和 Oracle,对于允许 Crystal Report 或运行视图以使用来自实时数据库的一些实时数据填充 UI(尤其是这么小的数据库),我完全没有疑虑;毕竟,如果一个人不能一次又一次地从中选择,那么数据库是什么?
为了避免“挂起服务器”和“避免在服务器上发生其他操作时进行查询”,是否有必要将此 MySQL 数据库复制到第二个报告数据库?根据我的经验,这样做的需要仅适用于敏感、安全风险或交易量大的数据库。
系统使用情况:系统严重依赖每半小时安排的 CRON 作业。每周可能有 500 个用户登录并输入一些数据(但数据不多 - 请参阅上面的表格大小)。
热烈欢迎任何cmets。
感谢您的宝贵时间。
【问题讨论】:
-
出于某种原因,供应商充满了......糖果。可能只是对数据库或备份不太了解的人做出了决定。只是推测,不是很有帮助。
-
感谢 Mihai,Upton Sinclair 曾经说过,我的信念是,“当一个人的薪水取决于他对它的不理解时,很难让他理解某事”。当前的供应商希望收费!不过没关系,我只是想对上面的问题提出一些想法,尤其是粗体字:挂起服务器,在实时生产数据库上运行报告,以及这是否会带来有争议的风险?我断言它不会,并且在使用或不使用 Crystal Reports 查询实时 MySQL 数据库时不会导致数据库服务器崩溃。夸大的风险。
标签: php mysql crystal-reports cron report