Xin tư vấn cách cấu hình server để tăng tốc độ import insert sản phẩm woocommerce

Discussion in 'Hỏi Đáp Kỹ Thuật' started by Tien Tran, Oct 28, 2019.

  1. Tien Tran

    Tien Tran Khách Qua Đường

    Chào các bác, em vào forum đã lâu. Có đọc qua tip,trick của các cao thủ nhưng hiện tại mới hiểu lơ tơ mơ nay mạn phép xin được tư vấn về vấn đề em gặp phải:
    Chẳng là hiện tại em đang làm site để post sp lên woo. Nhưng hiện tại khi post dc gần 20k sản phẩm thì cái table wp_postmeta nó tăng lên 15 triệu dòng. Tốc độ import lúc đầu khoảng 20 sản phẩm/phút giờ nó giảm còn 5 cái /phút. Server hiện tại mình đang dùng là SSD 16GB ram.
    Có cách nào để tối ưu tăng tốc độ import lên không?
     
  2. Dung Vuong

    Dung Vuong Sơ Nhập Giang Hồ

    Bác dùng cách gì import thế
     
  3. Tien Tran

    Tien Tran Khách Qua Đường

    em viết tool import qua api
     
  4. bmt

    bmt Sơ Nhập Giang Hồ

    Cách nhanh nhất chắc là code lại ko import qua wordpress nữa, mà export dữ liệu ra file sql rồi import thẳng vào MYSQL thôi
     
  5. Tien Tran

    Tien Tran Khách Qua Đường

    Cái import thẳng db thì mình cũng có nghĩ tới nhưng website mình tạo có thể cho nhiều người dùng nên việc post sản phẩm phải dùng cách truyền thống. Mình muốn hỏi cách tối ưu tốc độ xử lý insert dữ liệu khi database quá lớn ấy.
     
  6. Dang

    Dang Bang Chúng

    Trong thư mục chứa mã WP bạn thử tạo file .php và thêm code insert db như bên dưới. Tiếp theo các truy vấn insert, bạn cho truy vấn đến file vừa tạo thử xem sao!

    PHP:
    define('WP_USE_THEMES'false);

    require_once (
    './wp-load.php');

    // your code here
     
    hocauo40, Vito_King and Tien Tran like this.
  7. Tony Vu

    Tony Vu Bang Chúng

    WP mà DB lên tới hàng triệu là chậm lắm bác ợ. Trước em cũng bị xài cache, plugin đủ kiểu vẫn ko như ý nên sau đó tự code cho nó lành {beauty}
     
    Tien Tran likes this.
  8. congloi

    congloi Sơ Nhập Giang Hồ

    wp mà db lớn là mệt mỏi lắm, import mệt, rồi run site cũng mệt.

    Code thường insert 1 product thường chỉ tốn 1 row trong db của mấy bác, còn thằng wp bèo cũng tốn 4 row.
     
  9. Tien Tran

    Tien Tran Khách Qua Đường

    Thank bác để em thử
     
  10. NXT

    NXT Khách Qua Đường

    Để insert nhanh vào woocommerce thì chỉ nên tự code bác nhé, còn nếu qua wp thì nó làm vài động tác khác nữa nên rất là lâu. Em import đến cả vài trăm k products cũng không gặp vấn đề gì.
     
    hocauo40 likes this.
  11. Dung Vuong

    Dung Vuong Sơ Nhập Giang Hồ

    Bác cho e hỏi mỗi post nó sinh ra khoảng 20 dòng ở wp_postmeta thì làm thế nào bác. Vài trăm k sản phẩm của bác load có nhanh k bác
     
  12. NXT

    NXT Khách Qua Đường

    - Bác cho e hỏi mỗi post nó sinh ra khoảng 20 dòng ở wp_postmeta thì làm thế nào bác - Đoạn này em không hiểu ý bác muốn hỏi là sao ạ.
    - Vài trăm k sản phẩm của bác load có nhanh k bác - Theo em là chấp nhận được, đó là em không dùng cache gì, nếu cache có thể nhanh hơn ạ.
    Dù gì thì database implementation của thằng WP cũng là "lởm" nhất rồi nên em cũng không buồn tối ưu gì hơn. Nhưng việc xử lý từng đó products thì theo em vẫn chạy ổn được.
     
  13. Dung Vuong

    Dung Vuong Sơ Nhập Giang Hồ

    ý e là mỗi sản phẩm được add vào woo thì trong bảng wp_postmeta nó sinh ra khoảng 20 rows cho cái sản phẩm đó. Thì cái table này của bác có bao nhiêu M rows á
     
  14. Vito_King

    Vito_King Sơ Nhập Giang Hồ

    Database implementation của thằng WP không lởm nhé, data scheme của nó build để phù hợp với nhiều dạng site nên tất yếu phải vậy.

    Site thím dùng có 1 mục đích chỉ tạo những cái cần thiết so sánh ko hợp lý, 2 cái 2 khía cạnh khác nhau
     
  15. NXT

    NXT Khách Qua Đường

    - Dạ tầm 97 triệu rows thôi ạ.
    - Em nói vậy cũng hơi quá, nhưng đúng là nó "lởm" so với nhu cầu bây giờ thôi ạ. Data schema của nó chỉ phù hợp với thời gian trước, và tất nhiên mục đích chính của nó là để cover nhiều dạng sites, nhưng việc một record ở posts sinh ra nhiều postmeta đã k phù hợp cho hiện tại nữa rồi.
     

    Attached Files:

  16. Dang

    Dang Bang Chúng

    Bạn thử tìm hiểu xem có một CMS / framework nào có thể được tích hợp / phát triển rất nhiều theme và plugin như WP chưa? Với 1 ý nữa là chủ thread và các mems đang bàn luận về WooCommerce - một plugin chuyên về sản phẩm bạn nhé!

    Tóm lại, công cụ là như nhau, tùy vào mục đích của từng người sẽ khác nhau!

    Thân!
     
    hocauo40 and NXT like this.
  17. Tien Tran

    Tien Tran Khách Qua Đường

    @NXT bác có thể cho em xin đoạn code import thẳng vào db được không ạ? thêm nữa là sản phẩm của em có nhiều tham số mỗi cái có 37 biến và ảnh (link ngoài) cho từng biến thì xử lý thế nào cho tiện. Khi em sử dụng api để post bài thì em mất 2 lần request tới api là post dc sản phẩm này tuy nhiên em biết là phần backend nó sẽ phải thực hiện rất nhiều lệnh truy vấn. Em chỉ là tay ngang không chuyên về code các thứ nên em chỉ muốn tăng tốc xử lý tốc độ cho server là vấn đề ưu tiên. Và như bác @Dung Vuong nói thì khi post sản phẩm woocommerce cái wp_postmeta sẽ sinh ra rất nhiều record. Nếu dùng insert thẳng vào db thì phải chèn vào cái wp_postmeta này.
     
    NXT likes this.
  18. Dung Vuong

    Dung Vuong Sơ Nhập Giang Hồ

    97 M thì thốn thật. Có nhiều rows nó lưu dạng serialize nữa. Host cũng k được nhiều site lắm :(. Cơ mà thank bác nhiều nhé :)
     
  19. 2ndCapricorn

    2ndCapricorn Sơ Nhập Giang Hồ

    Nếu site chưa live thì bác cứ cài một bản WP mới với mình plugin Woo thôi. Bỏ hết theme với với plugin không cần thiết sẽ import nhanh hơn. Còn nếu site đã live thì cũng cài mới rồi import ở localhost. Sau mới cài lại plugin cho giống site ban đầu.
     
  20. console

    console Bang Chúng

    Server 10$ vultr đang chạy 50k products woo vẫn đang import. Tầm 1s nháy, code tự viết. Tốc độ site hơi chậm nhưng chịu xài woo vậy là ổn. Bí quyết k có gì nhiều chỉ là hình ném qua chỗ khác k cho lên + remove hết ba cái plugin cho nặng site :D
     
    SON DINH, Le Hieu and Tien Tran like this.