我已经看到一些专用的 MySQL 服务器,它们只使用一个内核。我比 MySQL 的 DBA 更擅长开发,所以需要一些帮助
服务器非常庞大,具有 OLAP/DataWarehouse (DW) 类型的负载:
注意:最大的 DB 是从 OLTP DR 服务器复制的 DB,DW 就是从这里加载的。它不是完整的 DW:仅持续 6 个月到 6 周,因此它比 OLTP DB 小。
ALTER TABLE...DROP KEY...ADD INDEXH2 是一个单线程数据库,在性能方面享有盛誉。其他数据库是多线程的。
我的问题是:多线程数据库什么时候变得比单线程数据库更有趣?有多少用户?多少个进程?什么是触发器?有人有经验可以分享吗?
概括
RAM 的重要性是一个既定的事实,但在 MySQL 使用 CPU 时,关于内核和多线程重要性的资料要少得多。我说的是在 4cores vs 6cores vs 8cores 上运行 MySQL 的区别等等。
不同的存储引擎使用 CPU 的方式不同吗?
我想针对其他一些分支(例如 Percona 服务器、MariaDB 以及可能的其他分支)对 MySQL 服务器 rpm 进行性能测试(又名烘焙)。我希望通过提出这个问题,我可以更好地理解设置适当性能测试背后的方法。我计划使用 sysbench 来运行我的实际测试,但我对任何事情都持开放态度。
我有两个经常更新的表,一个是直接的UPDATE ..,另一个是直接的,INSERT .. ON DUPLICATE KEY UPDATE ...通常这些查询是即时的,但有时需要 0.1 秒到 1+ 秒,然后又是即时的几秒钟。
另一件事要注意,我有两个 MySQL 服务器(在同一个专用网络中)。所有选择查询(除了一两个)都在从站上执行,这里看到的插入当然在主站上。当数据库处于大负载下时,速度减慢最为明显。最后,我正在使用 xtradb(看看它是否有帮助),但在纯 MySQL 5.5 InnoDB 上发生了相同的行为。
-- CustomData
+-----------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------+------+-----+---------+-------+
| Server | int(11) | NO | PRI | NULL | |
| Plugin | int(11) | NO | PRI | NULL | |
| ColumnID | int(11) | NO | PRI | NULL | |
| DataPoint | …Run Code Online (Sandbox Code Playgroud) 我正在尝试为我们的新基础架构选择最佳配置,但对结果有些困惑。
我使用 sysbench v0.5 进行测试:
准备数据
sysbench --test=/usr/share/doc/sysbench/tests/db/oltp.lua \
--oltp-test-mode=complex --oltp-table-size=1000000 \
--mysql-db=mydb --mysql-user=root --mysql-password=mypassword prepare
Run Code Online (Sandbox Code Playgroud)
做测试
sysbench --test=/usr/share/doc/sysbench/tests/db/oltp.lua \
--oltp-test-mode=complex --oltp-table-size=1000000 --oltp-read-only=off \
--num-threads=6 --max-time=60 --max-requests=0 \
--mysql-db=mydb --mysql-user=root --mysql-password=mypassword run
Run Code Online (Sandbox Code Playgroud)
从下面的结果可以看出,主-主复制(3台机器的percona)性能最差,然后是mySQL主-从(2台机器)配置,最快的是mySQL作为单个独立服务器。
这是复制解决方案的正常情况吗?看起来太慢了,配置之间的 10 倍差异在我看来很不正常。也许我错过了一些东西......我对 Percona Galera Cluster 完全失望,它以对 innodb 的速度着称。呼:)
请检查下面提供的信息并提出建议,谢谢。
服务器位于同一个数据中心,都与一个 Gbit 交换机相连,并有第二个以太网卡,所有这些都配置为它们之间的专用网络。
目前,服务器上没有负载。
第一次测试
# hdparm -Tt …Run Code Online (Sandbox Code Playgroud)