Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 即使不访问数据库,单个大表是否也会降低数据库的速度?_Php_Mysql - Fatal编程技术网

Php 即使不访问数据库,单个大表是否也会降低数据库的速度?

Php 即使不访问数据库,单个大表是否也会降低数据库的速度?,php,mysql,Php,Mysql,如果您有一个表,其中包含不定期访问的网站的一小部分的缩略图,那么数据库会正常运行(假设不访问大表),还是会整体速度下降 例如,我发现我的免费webhost提供了无限的数据库大小,但只有10000个文件(因此我在数据库中存储缩略图),因此我很好奇是否可以保留一些未使用的值-因此在重复的情况下,它会找到匹配的哈希并重新链接到旧值,或者仅仅删除行会更好吗?数据库最终将数据存储在磁盘上。数据库性能实际上并不受磁盘空间和磁盘使用率的影响(除非在某些极端情况下,例如磁盘空间不足或磁盘空间严重碎片化,这两者都

如果您有一个表,其中包含不定期访问的网站的一小部分的缩略图,那么数据库会正常运行(假设不访问大表),还是会整体速度下降


例如,我发现我的免费webhost提供了无限的数据库大小,但只有10000个文件(因此我在数据库中存储缩略图),因此我很好奇是否可以保留一些未使用的值-因此在重复的情况下,它会找到匹配的哈希并重新链接到旧值,或者仅仅删除行会更好吗?

数据库最终将数据存储在磁盘上。数据库性能实际上并不受磁盘空间和磁盘使用率的影响(除非在某些极端情况下,例如磁盘空间不足或磁盘空间严重碎片化,这两者都不是您的问题)

数据库性能是由内存中发生的事情驱动的,特别是由将数据从磁盘加载到内存所需的时间。内存中有各种数据缓存,例如页面缓存。当一个页面不可用时,引擎必须从磁盘获取它——这需要时间

一个仅仅放在磁盘上从未使用过的表不应该占用内存中的任何空间。这意味着其他查询使用的其他表可以毫无问题地填满内存。当然,当该表被修改时,一个或多个页面将被加载到内存中。从您描述的情况来看,这不会占用很多内存缓存


您的问题的基本答案是,磁盘上挂着一个大表不会影响性能。当然,对表的修改会影响性能,因为这项工作将由处理器和内存完成,而这些处理器和内存可用于其他查询。

数据库最终将数据存储在磁盘上。数据库性能实际上并不受磁盘空间和磁盘使用率的影响(除非在某些极端情况下,例如磁盘空间不足或磁盘空间严重碎片化,这两者都不是您的问题)

数据库性能是由内存中发生的事情驱动的,特别是由将数据从磁盘加载到内存所需的时间。内存中有各种数据缓存,例如页面缓存。当一个页面不可用时,引擎必须从磁盘获取它——这需要时间

一个仅仅放在磁盘上从未使用过的表不应该占用内存中的任何空间。这意味着其他查询使用的其他表可以毫无问题地填满内存。当然,当该表被修改时,一个或多个页面将被加载到内存中。从您描述的情况来看,这不会占用很多内存缓存


您的问题的基本答案是,磁盘上挂着一个大表不会影响性能。当然,对表格的修改会,影响性能,因为这项工作将由处理器和可用于其他查询的内存完成。

简言之,答案是否定的。因为每次都不访问的单个大型表不会读取内存。当我将数据库保存到内存中时,数据库的性能会起作用。因此,它不会起作用,并且不要像注释中提到的@bad\u boy那样解析。

简言之,答案是否定的。因为每次都不访问的单个大表不会读取到内存中。当我保存到内存中时,数据库的性能会起作用。因此它不会起作用,也不会像注释中提到的@bad\u boy那样解析。

有一个非常重要的问题关于图像的一般技术:您应该将图像存储在文件系统上,并将修补程序存储在数据库中。为什么?当您从数据库中读取图像时,需要执行额外的工作—读取内存、解析、发送标题。如果你想预览一张图片呢?您必须连接到数据库才能执行此操作。所以就使用这种通用技术吧。至于问题本身:一个大表是否会降低数据库的速度,即使不被访问。不,不会的,因为你不需要把它读入内存,也不需要解析。谢谢,有了这些图片,全尺寸的版本会被放在其他网站上,以绕过我的1.5gb限制,由于10k文件的限制,我只在数据库中存储了缩略图。关于图像,通常有一种非常通用的技术:您应该将图像存储在文件系统中,并将修补程序存储在数据库中。为什么?当您从数据库中读取图像时,需要执行额外的工作—读取内存、解析、发送标题。如果你想预览一张图片呢?您必须连接到数据库才能执行此操作。所以就使用这种通用技术吧。至于问题本身:一个大表是否会降低数据库的速度,即使不被访问。不,不会的,因为你不会把它读入内存,也不会解析。谢谢,有了这些图片,全尺寸的版本被放在其他网站上,以绕过我的1.5gb限制,这只是我存储在数据库中的缩略图,因为10k文件限制。谢谢你的回答,完美地解释了这一点,我不确定加载的是整个数据库还是仅使用中的表:)感谢您的回答,完美地解释了它,我不确定加载的是整个数据库还是仅使用中的表:)