sun*_*ant 13 mysql performance
我想我对此有一个基本的了解,但我希望有人可以给我更多细节,因为我有兴趣了解有关数据库性能的更多信息.
可以说我有一个非常大的数据库,有数百万个条目,数据库支持许多连接.由于数据太多,对数据库进行简单查询的速度很慢.我试图准确理解给定连接上的查询何时开始直接影响在其他连接上运行的查询的性能.
如果一个连接锁定某些元素,我理解这将阻止运行需要这些元素的其他连接的查询.例如:
SELECT FOR UPDATE
Run Code Online (Sandbox Code Playgroud)
将锁定你正在选择的内容.
当你做一些简单的事情时会发生什么:
SELECT COUNT(*) FROM myTable
Run Code Online (Sandbox Code Playgroud)
假设我们有一个十亿行的表,所以运行计数需要一些时间(在innodb上运行).它会影响在其他连接上运行的查询吗?
如果使用SELECT和JOIN选择大量数据,例如:
SELECT * FROM myTable1 JOIN myTable2 ON myTable1.id = myTable2.id;
Run Code Online (Sandbox Code Playgroud)
有连接锁定任何其他查询?
我发现很难知道哪些查询会对在其他连接上运行的查询的性能产生直接影响.
谢谢
有不同的角度:
关于这第二点,问题主要分为3个方面:
关于磁盘读取:您检索的数据(以字节为单位)越多,硬盘驱动器就会越忙,并减慢使用它的任何其他活动。减少选定行的大小以避免磁盘开销。
关于内存使用:mysql 管理一个内部缓冲区,在某些情况下可能会卡住。我对它的了解不足以给你一个正确的答案,但我知道这绝对是你应该关注的事情。
关于cpu使用:基本上cpu会忙的时候
那么,现在什么时候知道什么时候有附带效应呢?通过分析您的硬件... 如何进行分析?
SHOW INNODB STATUS或SHOW PROFILE获取有关主 mysql 硬盘、cpu 和内存手表的有用信息。perfmon.exe和监视PRIVATE BYTES和VIRTUAL BYTESMySQL的过程。我说相对,因为毕竟如果查询在您的计算机上很耗时,那么它可能不在 NASA 系统上......希望有帮助,问候。
| 归档时间: |
|
| 查看次数: |
2820 次 |
| 最近记录: |