Tôi có một câu hỏi tiếp theo về câu hỏi trước đây của tôi về tốc độ nhập với Inno-Bàn (thật bất ngờ!).
Kịch bản
Tôi cố gắng nhập một số kết xuất cơ sở dữ liệu lớn * trên máy dev cục bộ của mình trong thời gian hợp lý. Chúng tôi có rất nhiều KEY
s gắn liền với các bảng mà hóa ra là một nút cổ chai nhưng vẫn quan trọng đối với hệ thống trực tiếp của chúng tôi.
Cách tiếp cận của tôi sau khi đặt câu hỏi ở trên là xóa các KEY ...
câu lệnh từ kết xuất, nhập và thêm lại các khóa.
Tuy nhiên, tôi thường thấy mình đang chỉnh sửa một bãi chứa hiện tại để nhập nó cục bộ và tôi tình cờ thấy những "bình luận" hài hước này (The disable/enable keys
-lines)
--
-- Dumping data for table `monster`
--
LOCK TABLES `monster` WRITE;
/*!40000 ALTER TABLE `monster` DISABLE KEYS */;
INSERT … INSERT … INSERT
/*!40000 ALTER TABLE `monster` ENABLE KEYS */;
UNLOCK TABLES;
Nhưng trên thực tế, các "bình luận" này là các Báo cáo MySql có điều kiện
Đó là tin tức đối với tôi nhưng ok, với hình thức đầu ra, mysql --version
mọi thứ đều ổn với tôi:
mysql Ver 14.14 Distrib 5.5.38, for debian-linux-gnu (x86_64) using readline 6.3
Những gì tôi giả sử
Bảng đã bị khóa (tốt thôi, đó chỉ là tôi trên dev mashine). Sau đó, các khóa như được xác định trong lược đồ bảng bị vô hiệu hóa, dữ liệu được nhập, các khóa được bật.
Vì vậy, trong quá trình "chèn dữ liệu" -phase, không nên lãng phí thời gian cho các khóa mà phải kiểm tra sau khi tất cả dữ liệu được chèn.
Tôi sẽ nghĩ rằng đây là hành vi tương tự như khi tôi xóa tất cả các KEY 'foo' (foo)'
dòng khỏi kết xuất, nhập kết xuất và chạy một tập lệnh ADD KEY 'foo' ...
sau đó.
Những gì tôi quan sát
Đó là cách nhanh hơn để xóa các khóa thủ công, nhập và thêm lại các khóa sau đó dựa vào các DISABLE KEYS
câu lệnh có điều kiện đã tạo ramysqldump
Chỉnh sửa thủ công kết xuất + nhập mysql + thêm khóa = 15 + 8 + 8 ≈ 30 phút
Nhập mys mys đơn giản: đã bỏ cuộc, (Tôi chỉ được trả tiền trong 8 giờ / ngày> :))
Tôi không thể không nghĩ rằng tôi đang thiếu một cái gì đó rất cơ bản ở đây (hoặc cơ sở dữ liệu đang troll tôi).
mysqldump --innodb-optimize-keys
từ Percona percona.com/doc/percona-server/5.5/man Quản lý / Từ lâu dài: ngừng sử dụng mysqldump và sử dụng mydumper hoặc xtrabackup.