2008-09-15 32 views
51

Có bất kỳ kỹ thuật được ghi chép nào để tăng tốc các vùng và nhập khẩu mySQL không?Tăng tốc các vùng và nhập mysql

này sẽ bao gồm các thiết lập my.cnf, sử dụng đĩa RAM vv

chỉ Looking for kỹ thuật tài liệu, tốt nhất với tiêu chuẩn cho thấy tiềm năng tăng tốc.

Trả lời

15

http://www.maatkit.org/ có mk-song song-dump và mk-song song-restore

Nếu bạn đã có nhu cầu cho đa luồng mysqldump, muốn không còn nữa. Công cụ này kết xuất các bảng MySQL song song. Nó là một mysqldump thông minh hơn nhiều có thể hoạt động như một trình bao bọc cho mysqldump (với hành vi mặc định hợp lý) hoặc như một trình bao bọc xung quanh SELECT INTO OUTFILE. Nó được thiết kế cho các ứng dụng hiệu suất cao trên các kích thước dữ liệu rất lớn, nơi tốc độ rất quan trọng. Nó tận dụng nhiều CPU và đĩa để kết xuất dữ liệu của bạn nhanh hơn nhiều.

Ngoài ra còn có các tùy chọn tiềm năng khác trong mysqldump chẳng hạn như không tạo chỉ mục trong khi bãi chứa đang được nhập - nhưng thay vì làm cho chúng khối lượng khi hoàn thành.

+3

Theo trang mk-parallel-dump man (http://www.maatkit.org/doc/mk-parallel-dump.html), nó không nên được sử dụng để sao lưu. Cẩn thận! – Ztyx

+2

Maatkit hiện là một phần của Bộ công cụ Percona (https://launchpad.net/percona-toolkit) – drewish

+2

Tên của lệnh trong bộ công cụ percona là gì? –

4

Sử dụng chèn mở rộng trong bãi chứa nên nhập khẩu nhanh hơn.

+1

nếu bạn làm vậy, bạn sẽ không thể nhập lại nếu bãi chứa thậm chí lớn vừa phải – Jonathan

+0

không thể xử lý các bãi lớn vừa phải với chèn mở rộng? – che

+0

Tôi đoán là khách hàng có bộ đệm kích thước cố định cho mỗi dòng mà nó đang đọc và chèn mở rộng vượt quá giới hạn đó. – Ztyx

24
  1. Nhận bản sao Hiệu suất cao MySQL. Cuốn sách tuyệt vời.
  2. chèn Extended trong bãi
  3. Dump với định dạng --tab vì vậy bạn có thể sử dụng mysqlimport, đó là nhanh hơn so với mysql < dumpfile
  4. nhập với nhiều chủ đề, một cho mỗi bảng.
  5. Sử dụng công cụ cơ sở dữ liệu khác nếu có thể. nhập vào động cơ giao dịch nặng nề như innodb chậm quá mức. Chèn vào một công cụ phi giao dịch như MyISAM nhanh hơn rất nhiều.
  6. Nhìn vào bảng so sánh tập lệnh trong bộ công cụ Maakit và xem bạn có thể cập nhật bảng của bạn thay vì bán chúng và nhập chúng không. Nhưng có thể bạn đang nói về sao lưu/khôi phục.
4

tắt kiểm tra khóa ngoài và bật tự động cam kết.

13

Nếu bạn đang nhập để InnoDB điều đơn hiệu quả nhất mà bạn có thể làm là đưa

innodb_flush_log_at_trx_commit = 2 

trong my.cnf của bạn, tạm thời trong khi nhập khẩu đang chạy. Bạn có thể đặt nó trở lại 1 nếu bạn cần ACID.

+0

Tôi tự hỏi, sẽ không đặt nó thành '0' thậm chí còn nhanh hơn? –

+0

thực sự không hiểu điều này làm gì, nhưng nó đẩy nhanh quá trình khôi phục cơ sở dữ liệu innoDB lớn của tôi. cho MyISAM dbs tăng 'key_buffer_size' đã giúp (đến 30% bộ nhớ có sẵn). – arun

+1

Chỉ cần tò mò, không SET autocommit = 0 làm cho điều này không cần thiết? –

5

Tôi đoán câu hỏi của bạn cũng phụ thuộc vào nơi cổ chai là:

  • Nếu mạng của bạn là một nút cổ chai bạn cũng có thể có một cái nhìn vào lá cờ -C/--compress-mysqldump.
  • Nếu máy tính của bạn hết bộ nhớ (nghĩa là bắt đầu hoán đổi), bạn nên mua thêm bộ nhớ.

Ngoài ra, hãy xem cờ --quick cho mysqldump (và --disable-keys nếu bạn đang sử dụng MyIsam).

+0

[Tham khảo] (http://dev.mysql.com/doc/refman/5.6/en/mysqldump.html#option_mysqldump_disable-keys) nói '--disable-keys' là' chỉ hiệu quả đối với các chỉ mục không phải của các bảng MyISAM ' . – Kapep

+0

kapep - cảm ơn sự điều chỉnh. Tôi đã cập nhật câu trả lời. – Ztyx

1

mysqlhotcopy cũng có thể thay thế cho bạn nếu bạn chỉ có bảng MyIsam.

-2

Sử dụng chỉ số nhưng không quá nhiều, kích hoạt bộ nhớ cache truy vấn, sử dụng nhân sư cho cơ sở dữ liệu lớn, đây là một số lời khuyên tốt http://www.keedeo.com/media/1857/26-astuces-pour-accelerer-vos-requetes-mysql (Trong tiếng Pháp)

+0

Bạn không nên chỉ cung cấp liên kết đến một trang web khác làm câu trả lời vì trang web có thể lỗi thời trong tương lai. Thay vào đó, hãy nhấp vào liên kết "chỉnh sửa" trên câu trả lời này và bao gồm các phần thiết yếu của giải pháp từ trang đó tại đây. Xem: http://meta.stackexchange.com/q/8259 –

-2

lựa chọn khác là http://www.mydumper.org - đa luồng mysql sao lưu/khôi phục mà là 3x nhanh hơn gấp 10 lần so với mysqldump và có thể xử lý cả MyISAM và InnoDB cũng như Mưa phùn http://vbtechsupport.com/1695/

+0

liên kết mydumper.org chuyển đến một trang trống. –

+0

vâng miền đã hết hạn .. có một tấm gương tại http://centminmod.com/mydumper.html cho tài liệu – p4guru