我想我对此有一个基本的了解,但我希望有人能给我更多的细节,因为我有兴趣了解更多关于数据库性能的信息。
假设我有一个非常大的数据库,有数百万个条目,该数据库支持许多连接。由于数据太多,对数据库进行简单查询会很慢。我试图准确了解给定连接上的查询何时开始对在其他连接上运行的查询的性能产生直接影响。
如果一个连接锁定了某些元素,我知道这将阻止运行需要这些元素的其他连接的查询。例如做:
SELECT FOR UPDATE
将锁定您选择的内容。
当您执行以下简单操作时会发生什么:
SELECT COUNT(*) FROM myTable
假设我们有一个包含十亿行的表,因此运行计数需要一些时间(在 innodb 上运行)。它会影响在其他连接上运行的查询吗?
如果您使用 SELECT 和 JOIN 选择大量数据怎么办,例如:
SELECT * FROM myTable1 JOIN myTable2 ON myTable1.id = myTable2.id;
对其他查询有连接锁吗?
我发现很难知道哪些查询会对在其他连接上运行的查询的性能产生直接影响。
谢谢