2010-03-12 33 views
6

Có cách nào để tăng tốc lệnh createb của PostgreSQL không?Tăng tốc độ PostGreSQL được tạob?

Thông thường tôi sẽ không quan tâm, nhưng làm thử nghiệm đơn vị trong Django tạo cơ sở dữ liệu mỗi lần và mất khoảng 5 giây.

Tôi đang sử dụng openSUSE 11.2 64-bit, PostgreSQL 8.4.2

Trả lời

5

Nó sẽ không giúp bạn bây giờ, nhưng đã có một số công việc thực hiện xung quanh này trong PostgreSQL 9.0.`

gì bạn có thể thử như một cách giải quyết là để chạy với fsync = off. Tất nhiên, thậm chí không nghĩ đến việc làm điều này nếu bạn có dữ liệu thực trong cơ sở dữ liệu của bạn, nhưng nếu nó chạy trên hệ thống thử nghiệm, điều đó sẽ làm cho CREATE DATABASE của bạn chạy nhanh hơn .

+1

Vừa được thử nghiệm createdb trên Postgres bắt đầu bằng tùy chọn "-F": nhỏ hơn 0,2 giây. Để kiểm tra đơn vị fsync = off nên tốt. – Tometzky

1
  • Nếu Django supported postgres schemas sau đó bạn chỉ có thể thả các lược đồ trong câu hỏi & tái tạo nó thay vì giết chết toàn bộ cơ sở dữ liệu.
  • Bạn vẫn có thể sử dụng DROP OWNED BY ... CASCADE để thả tất cả các đối tượng được tạo bởi bất kỳ người dùng nào được định cấu hình trong Django, đưa cơ sở dữ liệu trở lại trạng thái nguyên sơ. Xem nhanh hơn bao nhiêu.
  • Bạn có thể tắt Postgres, sau đó thoát khỏi bản sao lưu dự phòng cơ sở dữ liệu hiện có thay vì chạy initdb. Xem nhanh hơn bao nhiêu.
Các vấn đề liên quan