Php Facebook在哪里存储数百万的图像和视频。在数据库中还是其他地方?如果是,在哪里?

Php Facebook在哪里存储数百万的图像和视频。在数据库中还是其他地方?如果是,在哪里?,php,mysql,database,database-design,data-structures,Php,Mysql,Database,Database Design,Data Structures,我对数据库一无所知。我需要一些关于Facebook在哪里的信息,它存储了数百万张图片和视频。他们是否将其存储在数据库中,然后通过查询检索图像/视频?我从一些人那里读到过几次,你不应该将图像/视频存储在数据库中,但他们从来没有提到如果不将它们存储在数据库中,你为什么还要将它们存储在哪里。请尽可能多地向我提供信息。非常感谢 通常是什么?作为文件。在磁盘上。然后将这些文件的路径存储在数据库中以便于查找。(或者存储一个密钥,某些网络服务可以使用该密钥查找文件并将其传输。)您不在数据库中存储图像或文件,只

我对数据库一无所知。我需要一些关于Facebook在哪里的信息,它存储了数百万张图片和视频。他们是否将其存储在数据库中,然后通过查询检索图像/视频?我从一些人那里读到过几次,你不应该将图像/视频存储在数据库中,但他们从来没有提到如果不将它们存储在数据库中,你为什么还要将它们存储在哪里。请尽可能多地向我提供信息。非常感谢

通常是什么?作为文件。在磁盘上。然后将这些文件的路径存储在数据库中以便于查找。(或者存储一个密钥,某些网络服务可以使用该密钥查找文件并将其传输。)

您不在数据库中存储图像或文件,只存储数据(数字、文本等)。这些文件本身只是存储在一个内容分发网络中,可以根据最近的位置向浏览器提供图像。这些图像的名称可能存储在某个数据库中。不过,很难说它们是以什么方式存储的

Facebook没有在数据库中存储他们的图像和视频。每个文件都直接上传到专门用于此目的的服务器中,它们位于世界各地,例如俄勒冈州的派恩维尔或瑞典新建立的服务器。然而,正如所说,他们到处都有

数据库中存储的只是这些不同文件的路径。
根据您的位置,您正在寻找的路径将发生变化,因此,您可以访问来自世界各地的不同服务器,具体取决于您所在的位置。

Facebook使用专门的优化解决方案,完全适合存储数百万张图像的任务。这种解决方案对于一般情况来说是没有用的,特别是对于刚刚开始学习数据库的人来说

还要记住,数据库并不一定意味着它使用SQL。文件系统也是存储文件的数据库。它还仅针对此任务进行了优化,这意味着尝试存储与文件不同的内容并尝试将其取回将是不可能的或效率低下的


SQL数据库具有存储所有类型数据的功能,并使程序员能够决定在以后某个时间点返回哪些数据。这使得它们在以后不需要决定返回哪些数据时效率更低,但更能适应不断变化的需求。Facebook图像存储只能用于存储图像。

显然,在NSA,你想做什么?建立另一个Facebook?了解数据库的一般情况?作为一个能处理数据库的程序员,你能跟上速度吗?根据你想走多远,你可能会有一个漫长的学习过程。嗨,沃尔特,我是一名学生。我正在尝试详细了解数据库,因为我有一个项目要创建,我想在迷你社交网站上做。这样你们就不会有任何性能问题。Facebook这样做只是因为他们有需要解决的性能问题。当你足够大的时候,你需要一个专门的解决方案来解决你所面临的问题。但是你不可能知道这会是什么样的问题,除非你离它越来越近。忘记优化你想要构建的东西吧!首先开始建立一个工作系统。让它发挥作用。然后开始观察是否有什么需要改进的地方。“过早优化是万恶之源!”最好将映像存储在本地驱动器中,并将映像路径存储到数据库。在存储到数据库和本地之前,动态生成唯一的文件名是一种很好的做法。想象一下这样一种情况:您有数千张图像要存储(例如,学校ERP系统)。您将在数据库中花费GB的空间,而通过存储映像路径,您的工作将在几MB内完成。它们如何确保每台服务器都可以访问所有图片?@bubakazouba网络连接存储,或在包含磁盘的服务器上运行的网络守护进程。谢谢,你能给我推荐一本书或一个主题的名字,让我读一读,并有效地成为该领域的“专家”吗?(也就是说,我想设置一组具有该功能的服务器)这样就没有字节数组或类似的东西了?为什么要将通用数据库称为“SQL数据库”?这意味着所有通用数据库引擎都基于SQL,但事实并非如此。不要忘记也有非SQL数据库,比如Neo4j。只有当数据库使用SQL作为查询语言时,我才确切地将其称为“SQL数据库”,并且我甚至明确地将文件系统作为非SQL的替代存储的示例。你误解了我的答案。那么是什么把SQL数据库带到这里来的呢?我不明白你为什么要特别谈论“文件系统数据库vs SQL数据库”而不是“文件系统数据库vs典型数据库”。我的问题是:为什么你把“neo4j”称为通用数据库。它不是,而是用于图形数据存储和检索。事实上,我的回答试图摆脱“通用数据库”的思维,引入这样一种想法,即每个数据库或存储系统都有它们的用例和缺点,应该仔细选择。为了说明“数据库”不是很具有描述性,大多数人都熟悉的典型示例是“SQL vs.文件系统”。当OP对数据库来说是全新的时候,深入了解Facebook如何存储内容的细节可能没有什么用处。我从来没有说过或暗示neo4j是一个通用数据库引擎。我只是将它用作非SQL DB引擎的一个示例,它就是。不过,我应该指定一个非SQL通用数据库作为示例,例如MongoDB,以避免混淆。我完全明白你的意思,但我谦逊的意见