everyone。这是我的MySQL服务器中的一个问题。
我有一张约40,000,000行和10列的表格。
它的大小约为4GB,引擎是innodb。
它是一个主数据库,只执行一个这样的sql。在mysql中拆分表的性能
insert into mytable ... on duplicate key update ...
约99%sqls执行update
部分。
现在服务器变得越来越慢。 我听说拆分表可能会提高其性能。然后我在我的个人电脑上试了一下,分成10个表,失败了,也尝试了100,失败了。速度反而变慢了。所以我想知道为什么拆分表不会提高性能?
在此先感谢。
更多细节:
CREATE TABLE my_table (
id BIGINT AUTO_INCREMENT,
user_id BIGINT,
identifier VARCHAR(64),
account_id VARCHAR(64),
top_speed INT UNSIGNED NOT NULL,
total_chars INT UNSIGNED NOT NULL,
total_time INT UNSIGNED NOT NULL,
keystrokes INT UNSIGNED NOT NULL,
avg_speed INT UNSIGNED NOT NULL,
country_code VARCHAR(16),
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY(id), UNIQUE KEY(user_id)
);
PS:
我也试图与固态硬盘和硬盘驱动器不同的计算机上,但并没有帮助过。
但是我的公司没有太多的预算用于更多的实例。有什么办法可以尝试吗?多谢 –
你可以尝试备份一些数据并删除它们,如果你的业务被允许的话 –
或者你可以将你的表分成7个或更多的表。每天阅读一张表并备份并清除其他表。 –