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個或更多的表。每天閱讀一張表並備份並清除其他表。 –