Trước giờ mình vẫn xài mysql cũ (5.x), dùng lệnh dưới đây để import database mysql, khá nhanh. Lệnh import: Code: mysql -u root -p [database.name] < /path-to-file.sql Gần đây, mình upgrade lên mysql 8.x, thấy khi import tốc độ rất chậm. File sql khoảng 3GB, tổng số gần 4 triệu rows mà chạy 1 tiếng mới import dc gần 800K rows. Tìm hiểu thử, thì có 1 cách tăng tốc khá đơn giản mà hiệu quả: - thêm 1 dòng cấu hình như này vào file /etc/my.cnf: Code: skip-log-bin - restart mysql - chạy import lại như lệnh trên Kết quả: với database như trên đã nói, mất tổng cộng 22p để hoàn thành.
Trước thấy mọi người hỏi mà anh ko nghĩ là anh em xài mysql mới. Anh xài cái cũ không bị chậm như vậy. Hoá ra cơ chế bin-log này từ version 8.0 mới có.
Nó dùng để làm replication giống mssql đó pro dev, nên cơ chế giống nhau. --- Double Post Merged, Oct 8, 2021, Original Post Date: Oct 8, 2021 --- Db tính Gb mà tiền tính MB. Đâu như thánh Tạ, db tính MB mà tiền tính GB
Anh ko rõ vì anh chưa tìm hiểu nhiều về version 8.x. Nhưng nó không ghi log cho từng query thì chắc sẽ nhanh hơn. Tuy nhiên anh em chú ý là nếu ai dùng chức năng replication của mysql thì KHÔNG NÊN dùng cách này nhé (hoặc tạm thời bật cấu hình khi import và bỏ cấu hình này khi chạy bình thường)
Em dùng mysql chế độ innodb Khi import là nó khóa database luôn, vậy sao khi import anh check được 800k row vậy ạ Nhiều khi em import mà ko biết làm sau để check được tình hình import đến đâu r
Anh dùng myisam. Mở 1 connect khác rồi count trên table gì đó. Anh quên cú pháp rồi (không phải count(*) from table). Cần thì nhắc lại anh vụ này, khi nào ngồi máy tính anh post cho. Em search google cũng có.
oki anh, để em vọc luôn google --- Double Post Merged, Dec 25, 2021, Original Post Date: Dec 25, 2021 --- Lệnh này có tác dụng show ra các process mysql đang chạy phải ko bác bác :#
À đây, sáng giờ cũng lọ mọ trên 4rum mà ko nhắc lại là anh cũng quên luôn SELECT TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TBNAME' AND TABLE_SCHEMA = 'DBNAME'; Anh ko rõ innodb nó có lưu trong schema hay ko nên em phải test thử. Và khi vừa import vừa query đếm rows nó sẽ có độ lệch nhất định so với lệnh select count(*). Nhưng lệnh này nhanh, chứ query select count(*) trong lúc bulk insert chậm lắm.
Đấy là câu lệnh cập nhật theo tiến trình trong mysql insert update select gì nó cũng hiện ra.Mà gõ thử là biết mà