![]() |
1
1
我认为您的基准测试结果将取决于您如何在数据库中存储文本数据。 如果将其存储为LOB,则在后台将其存储在普通文件中。 对于任何类型的业务线,您都要支付数据库查找+文件IO。 varchar存储在表空间中 在典型的关系数据库系统中,普通文本数据类型(varchar等人)的大小非常有限。例如2000或4000(Oracle),有时是8000甚至65536个字符。一些数据库支持长文本 但是 these have serious drawbacks and are not recommended . LOB是对文件系统对象的引用 如果文本较大,则必须使用LOB数据类型(例如Oracle中的CLOB)。 LOB通常是这样工作的: 数据库只存储对文件系统对象的引用。 文件系统对象包含数据(例如文本数据)。 这与你的同事的建议非常相似,除了DBMS可以减轻 管理引用和文件。 底线是: 如果你能将你的文本存储在varchar中,那就去做吧。 如果不能,则有两个选项:使用LOB或将数据存储在从数据库引用的文件中。两者在技术上相似,并且比使用varchar慢。 |
![]() |
2
3
不使用文件系统的主要优点是数据库将正确地管理并发访问。 假设两个进程需要同时修改相同的文本,与文件系统的同步可能会导致竞争条件,而您对数据库中的每一个操作都没有任何问题。 |
![]() |
3
0
我以前做过。这很糟糕,您需要一直保持文件系统和数据库的同步,以便使编程更加复杂,正如您所猜测的那样。 我的建议是要么采用全文件系统解决方案,要么采用全数据库解决方案,具体取决于数据。值得注意的是,如果您需要大量的搜索、条件数据检索,那么就使用数据库,否则就使用fs。 请注意,数据库可能没有针对大型二进制文件的存储进行优化。不过,请记住,如果同时使用这两种方法,就必须使它们保持同步,而且这不会产生优雅或令人愉快(编程)的解决方案。 祝你好运! |
![]() |
4
0
至少,如果您的问题来自“性能方面”,您可以使用 无SQL “存储解决方案,如Redis(例如通过Ohm)或CouchDB…” |
![]() |
Animesh Arya · 关联模型的Rspec 2 年前 |
![]() |
Kellen · 查看$卷展栏功能列表 2 年前 |
![]() |
Akshit Thakur Ak · 我怎样才能把铁轨停下来? 2 年前 |
![]() |
solidsnake99 · Rails db:如何绕过验证 2 年前 |
![]() |
Spyros · 从数组中删除nil值,并从引用数组中删除相应的项 2 年前 |
![]() |
Pauli-E · 当div打开并滚动到屏幕上时,向div添加类 2 年前 |
![]() |
ejoka · 如何使用Rails 7模型属性作为CSS标记值 2 年前 |