gpt4 book ai didi

mysql - 如何对 MySQL、Postgresql、MongoDB 的速度进行基准测试/测试,周围有这么多缓存层?

转载 作者:行者123 更新时间:2023-11-29 01:00:14 30 4
gpt4 key购买 nike

我认为对于 SQLite3,至少它不会保留任何缓存页面,因为没有服务器并且每次写入都会退出 SQLite3,因此它不能直接进行任何缓存。

但是当是MySQL、Postgresql、MongoDB的时候,会有一层,当数据以为已经保存了,其实是在DBMS的内存缓存中...磁盘。

即使写入磁盘,也有操作系统层保留要写入磁盘的扇区。

然后是硬盘的缓存。由于它是 8MB,所以当测试插入数据创建一个 800MB 的数据库时,错误可能是 1% 或更少。

但是其他层呢?确实需要一直刷新到操作系统层。否则,对于具有 4GB RAM 或 8GB RAM 的计算机,当它被认为非常快时,整个数据库可以轻松地驻留在 RAM 中。我们如何告诉测试将数据一直刷新到硬盘物理层或至少刷新到操作系统层之外?

最佳答案

当您进行基准测试时,您永远不能否定每一层的所有速度优化,直至操作系统甚至 CPU 级别,包括缓存。你不需要那个。您可以做的是在系统的不同生命周期状态下对性能进行基准测试。此外,如果您知道什么时候(大约)缓存了哪些数据,您可以在此之前和之后进行基准测试。例如 - 干净启动、首先访问 DB 数据集、随后访问 DB 等。最好先确定瓶颈,然后再对其进行更详细的基准测试。另一个好的做法是模拟现实生活中的系统负载并对其进行基准测试。任何综合基准实际上都是毫无意义的。祝你好运;)

关于mysql - 如何对 MySQL、Postgresql、MongoDB 的速度进行基准测试/测试,周围有这么多缓存层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3795985/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com