Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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
Mysql 读写时的查询速度_Mysql_Database_Indexing - Fatal编程技术网

Mysql 读写时的查询速度

Mysql 读写时的查询速度,mysql,database,indexing,Mysql,Database,Indexing,我知道我们可以在表中索引列,定义主键,分区以更快地访问数据 但是从一个有10列的表和一个有100列的表中读取数据有什么不同吗? 有人能解释一下数据库读取是如何更快的吗?读取数据涉及:可能的索引访问、存储中的行位置、磁盘之间的物理io、缓冲区,以及对获取的数据执行格式化操作和功能。IO速度取决于数据大小(除块大小、磁盘速度、缓冲区大小等其他因素外) 通常,请求的数据越多,处理速度就越慢。如果您有一个包含2个整数的行,那么从一个包含2个Varchar2(500)行(填充了数据)的表中读取1000行这

我知道我们可以在表中索引列,定义主键,分区以更快地访问数据

但是从一个有10列的表和一个有100列的表中读取数据有什么不同吗?

有人能解释一下数据库读取是如何更快的吗?

读取数据涉及:可能的索引访问、存储中的行位置、磁盘之间的物理io、缓冲区,以及对获取的数据执行格式化操作和功能。IO速度取决于数据大小(除块大小、磁盘速度、缓冲区大小等其他因素外)

通常,请求的数据越多,处理速度就越慢。如果您有一个包含2个整数的行,那么从一个包含2个Varchar2(500)行(填充了数据)的表中读取1000行这样的行会更快。另外,读取两列的1000行要比读取100列的行快


如果您提供更多详细信息,您可能会得到更具体的答案。

您的实际问题是什么?通常不能用10列表替换100列表。但是,如果返回的数据较多,则返回速度通常较慢。然而,数据类型以及它们是否被填充会在10列表比100列表快还是慢方面产生差异。这并不重要,因为他们无论如何都不应该直接替换。如果需要100列,则需要100列。真正的问题可能不是100列表是否应该更改为父子表结构。我只想从10列的表和100列的表中只选择一列(例如id),有什么区别吗?是的,选择一列可能更快,因为数据库将能够在每个I/O中用更多行填充缓冲区。这就是为什么选择*FROM。。。不推荐。我知道,我的意思是哪一个更好:
从表中选择名称(有100列)
从表中选择(名称)(有1000列)
。我们将从两个表中选择一列。表的总行大小也会影响速度。所以我认为从一个短行中选择一列比从一个长行中选择一列要快——请看:天哪,Emmad先生,我说的是从一个列数更多的表中只选择一列。。。没有更多的行。