性能问题,平面文件与数据库存储
Performance issue, flat file vs database storage
我正在做一个项目,要求我开发一个系统来提供JSON输出,流程如下:
1a) 一些表格将通过管理面板更新(我公司方面)
1b) 一些相关表格将通过管理面板(合作伙伴端)更新
-- Let say SuperHeroes & Males were updated in 1a), Studios & Years were updated in 1b)
2) 客户浏览我们的网站并请求一组信息:
- 在超级英雄(蚁人)
中有一个启用但未删除的行
- 在 Males 中有一个启用但未删除的行链接到 SuperHeroes (Scott Lang)
- 加入以上记录然后查看它们是否链接并存在于Studios (Marvel)
- 链接到 年 (2015) 中的现有行
3) 一个非常小的数据将被输出到一个JSON字符串,如下: { id:1,type:marvel },{ id:1,type:dc }
All rows in the above 4 tables will be updated/deleted at anytime without notification, [No Foreign Key as well]
我想在每次执行 1a 时更新平面文件中的信息(因为我们可以更新我公司方的系统,但不能更新合作伙伴方的系统,而且他们拒绝将一些额外信息保存到平面文件中,所以情况是我们没有简单的方法知道 Studios 或 年 表格被修改)
然后JSON请求会先从平面文件中加载信息(所有输出数据都会存储在这个文件中),然后使用一个简单的SQL语句来过滤链接记录存在于 Studios & Years
我做了研究并感到困惑,我得出结论,当数据量较小时,平面文件会很好,但要注意文件会越来越大(我们正在谈论的平面文件现在不会1次超过50行,不要频繁修改)
有些回答说数据库擅长查询数据(我认为是,需求也会执行SQL检查)
所以我不知道当我的数据量很小但仍然需要与数据库进行一些通信时它是否好..
感谢您的宝贵时间和帮助,欢迎所有想法和提示,谢谢!
您关于数据量的结论是绝对正确的,文件应该处理那 50 行,但是..
使用数据库作为存储应该会给你更多的选择,例如:
- 由于数据分离,您将能够生成任何输出
表示(今天是 JSON,但如果你必须生成 XML
在某一点?您会在 JSON 旁边添加存储 XML 的文件吗
文件?然后是 CSV 或任何其他?)
- 事务将保证 ACID
- 可扩展性和性能——如果你的数据集变大(你永远不知道 :)),许多
数据库为您提供许多可能性,例如 table 分区、基于分区的集群
或复制
在项目开始时对架构和技术的错误选择总是适得其反。
我正在做一个项目,要求我开发一个系统来提供JSON输出,流程如下:
1a) 一些表格将通过管理面板更新(我公司方面)
1b) 一些相关表格将通过管理面板(合作伙伴端)更新
-- Let say SuperHeroes & Males were updated in 1a), Studios & Years were updated in 1b)
2) 客户浏览我们的网站并请求一组信息:
- 在超级英雄(蚁人) 中有一个启用但未删除的行
- 在 Males 中有一个启用但未删除的行链接到 SuperHeroes (Scott Lang)
- 加入以上记录然后查看它们是否链接并存在于Studios (Marvel)
- 链接到 年 (2015) 中的现有行
3) 一个非常小的数据将被输出到一个JSON字符串,如下: { id:1,type:marvel },{ id:1,type:dc }
All rows in the above 4 tables will be updated/deleted at anytime without notification, [No Foreign Key as well]
我想在每次执行 1a 时更新平面文件中的信息(因为我们可以更新我公司方的系统,但不能更新合作伙伴方的系统,而且他们拒绝将一些额外信息保存到平面文件中,所以情况是我们没有简单的方法知道 Studios 或 年 表格被修改)
然后JSON请求会先从平面文件中加载信息(所有输出数据都会存储在这个文件中),然后使用一个简单的SQL语句来过滤链接记录存在于 Studios & Years
我做了研究并感到困惑,我得出结论,当数据量较小时,平面文件会很好,但要注意文件会越来越大(我们正在谈论的平面文件现在不会1次超过50行,不要频繁修改)
有些回答说数据库擅长查询数据(我认为是,需求也会执行SQL检查)
所以我不知道当我的数据量很小但仍然需要与数据库进行一些通信时它是否好..
感谢您的宝贵时间和帮助,欢迎所有想法和提示,谢谢!
您关于数据量的结论是绝对正确的,文件应该处理那 50 行,但是.. 使用数据库作为存储应该会给你更多的选择,例如:
- 由于数据分离,您将能够生成任何输出 表示(今天是 JSON,但如果你必须生成 XML 在某一点?您会在 JSON 旁边添加存储 XML 的文件吗 文件?然后是 CSV 或任何其他?)
- 事务将保证 ACID
- 可扩展性和性能——如果你的数据集变大(你永远不知道 :)),许多 数据库为您提供许多可能性,例如 table 分区、基于分区的集群 或复制
在项目开始时对架构和技术的错误选择总是适得其反。