PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

psycopg2 tương đương với lệnh R dbWriteTable và nhận được nhiều hiệu suất hơn từ mã python

Hãy thử điều này:

    id2 = csv.reader(open(os.path.join(perf_dir,id_files[1])))
    h = tuple(next(id2))

    create = '''CREATE TABLE id2 (%s varchar, %s int PRIMARY KEY, %s int)''' % h
    insert = '''INSERT INTO id2 (%s, %s, %s) VALUES (%%s, %%s, %%s)''' % h

    ...

    cr.executemany(insert, id2)

Truyền lệnh sql chỉ một lần cho tất cả các hàng. Ngoài chi phí hiệu suất của việc phát hành các lệnh sql bổ sung, hãy lưu ý rằng kích thước của chính chuỗi sql (tính bằng byte) có thể nhỏ hơn kích thước của dữ liệu thực đang được kiểm tra.

Sử dụng id2 làm trình tạo không có mảng cũng sẽ tránh tải toàn bộ tập dữ liệu vào bộ nhớ.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách đánh giá biểu thức trong câu lệnh select trong Postgres

  2. Làm cách nào để truyền một bản ghi làm tham số cho hàm PL / pgSQL?

  3. Làm thế nào để kiểm tra xem lược đồ công khai PostgreSQL có tồn tại hay không?

  4. Làm thế nào để chỉ định hạt giống khóa chính cho một bảng postgres?

  5. PostgreSQL - đặt giá trị ô mặc định theo giá trị ô khác