我想複製一個非常大的表格,但我不想逐行復制它。有沒有辦法複製它?在MYSQL中複製表格,但一次不復制一行
例如,您可以截斷W/O刪除行/列,所以我想知道是否有用於複製整個表類似
UPDATE:逐行插入是很痛苦的(因爲120M行) 。無論如何要避免這一點?
我想複製一個非常大的表格,但我不想逐行復制它。有沒有辦法複製它?在MYSQL中複製表格,但一次不復制一行
例如,您可以截斷W/O刪除行/列,所以我想知道是否有用於複製整個表類似
UPDATE:逐行插入是很痛苦的(因爲120M行) 。無論如何要避免這一點?
MySQL不再具有可靠的「複製表」功能 - 其中很多原因與數據存儲方式有關。但是,下面是逐行插入,但很簡單:
CREATE TABLE `new_table` LIKE `old_table`;
INSERT INTO `new_table` (SELECT * FROM `old_table`);
您可以使用INSERT INTO ... SELECT
。
不幸的是,這不會像@AvatarKava提供的答案,因爲這不會像auto_increment複製屬性... – 2010-05-19 17:03:56
Mrh?我們的答案是一樣的,除了@ AvatarKava提到了我只暗示的創建錶行(這也是我爲什麼選擇了它們),並且我又將其鏈接到文檔。否則,我們說的是完全一樣的東西。 Ø@。 – pinkgothic 2010-05-19 17:11:21
INSERT INTO TABLE2 SELECT * FROM TABLE1
不幸的是,這不會像@AvatarKava提供的答案,因爲這不會複製像auto_increment這樣的屬性... – 2010-05-19 17:04:37
那麼,複製這些的唯一方法是重新創建他們imo ..但是真實的,沒辦法。 – modz0r 2010-05-19 18:00:12
如果您使用的是MyISAM,則可以將物理文件複製到磁盤上。重新啓動服務,您將擁有帶索引的新表,並且所有內容都相同。
我正在使用innodb。這是否適用? – 2010-05-19 17:03:24
不幸的是:( – AvatarKava 2010-05-19 17:04:20
爲什麼不呢?好奇! – 2010-05-19 17:05:46
複製大型表格並不重要;最終數據庫可能需要重建它。
在InnoDB中,唯一的方法是真正重建它,這意味着插入...選擇或類似,但是,對於120M行,因爲它將在單個事務中發生,您可能會超出回滾的大小區域,這會導致插入失敗。
mysqldump後面是重命名原始表,然後恢復轉儲應該工作,因爲mysqldump可能會導致提交每行很多。但是它會很慢。
預言:
從original_table
+1 ninja'ing我創建表T作爲選擇*。 [笑] – pinkgothic 2010-05-19 16:59:25
哎。我有一張大桌子,而且一排一排的插入很痛苦 – 2010-05-19 17:00:35
我討厭這個! :) – AvatarKava 2010-05-19 17:01:06