A/E sử dụng CSDL nào với PHP khi làm auto blog?

Discussion in 'Thảo Luận Chung' started by Thanh Nguyen, Jan 3, 2019.

  1. Thanh Nguyen

    Thanh Nguyen Bang Chúng

    Gần đây mình đang làm 1 website có db khá là phức tạp. Lượng data rất nhiều. Nguyên mysql mình export ra đã gần 3GB và vẫn còn đang tiếp tục cắm vps để cào. Mặc dù đã đánh indexs nhưng khi search vẫn rất chậm. Mình không hiểu do mình tối ưu mysql chưa tốt hay do hiệu năng của mysql nó như vậy.

    Cho hỏi ae ngoài mysql ra thì khi sử dụng php ae có dùng hệ csdl nào khác không. Và nếu có thì suggest cho mình với. Thanks you
     
  2. wpresources

    wpresources Bang Chúng

    Lâu nay mình vẫn dùng mysql thấy không vấn đề,không thấy database của bạn như nào thì khó mà tư vấn chính xác được.Nếu bảng đó không khóa ngoại gì có thể thử MySQL partitioning
     
  3. money

    money Hương Chủ

    Search kiểu như google thì mysql kém lắm. Lên tầm vài triệu records là bắt đầu thấy.
    Vấn đề là performance kém ko xảy ra với mọi truy vấn search mà thường chỉ thấy trong 2 trường hợp:
    - search mà số lượng record tìm thấy nhỏ hơn số lượng mình limit
    - số lượng records tìm thấy lớn thì sẽ paging —> các page càng về cuối càng chậm.
     
  4. Nai

    Nai MiddleMan Staff Member

    Mysql kết hợp với Elasticsearch được không anh. Em đang gặp vấn để về search khi lên đến vài triệu record như anh nói
     
  5. money

    money Hương Chủ

    ES dùng với db nào cũng tốt. Hiện tại em đang dùng db nào thì cứ dùng tiếp, ES chỉ là miếng bọc bên ngoài để truy vấn chứ nó không thay thế db.
    Anh vẫn xài Mysql vì anh có giải pháp riêng, nhưng chọn ES là cách tốt nhất cho mọi người.
     
    Nai likes this.
  6. Trần Trọng Bách

    Trần Trọng Bách Sơ Nhập Giang Hồ

    Mình từng dùng Elastic search kèm mongodb, mình k quá chú trọng vào chất lượng kết quả nên k tối ưu cái đó, nhưng so sánh việc search của elastic với search fulltext của mongodb thì 2 điểm rất ưng là tốc độ search rất nhanh (luôn trả về kết quả), và không bị tốn nhiều tài nguyên (mongodb mình search rất lâu và nhiều record có thể full ram và sập db).
    Trong trường hợp trên Elastic là một db index lại toàn bộ db của mongodb (index phần mình muốn search thôi, trường hợp của mình là title bài viết). Sau đó query vào elastic để search và lấy về kết quả có kèm id của mongodb để trả về content khi cần.
     
    Nai likes this.
  7. Phan Thị

    Phan Thị Bang Chúng

    bên mongodb nó phình to nhanh khủng khiếp được cái search khá nhanh. vẫn chung thành mysql hay mariadb
     
  8. Dung Vuong

    Dung Vuong Sơ Nhập Giang Hồ

    Inbox vùng kín em cái giải pháp anh chưởng môn ơi {adore}{adore}{adore}
     
  9. money

    money Hương Chủ

    Tự xây dựng index thay vì dùng fulltext index của mysql
     
  10. princenuce

    princenuce Sơ Nhập Giang Hồ

    Tùy thuộc vào giải pháp chứ với mình thấy mysql là đủ dùng rồi. Nên ưu tiên sử dụng index và tìm kiếm các giải pháp để chỉ cần sử dụng mỗi 1 DB thì đỡ rắc rối :D
     
  11. Thanh Nguyen

    Thanh Nguyen Bang Chúng

    Cám ơn cụ đã giúp e có thêm động lực. E cũng đang đi theo hướng này vì chuyển csdl bây giờ phí mất mấy tháng cào data của e {beat_brick}{beat_brick}{beat_brick}
     
  12. money

    money Hương Chủ

    Mysql mà lên đến tầm vài chục gb data và cỡ 20tr records mà cho search thì có index kiểu gì cũng chậm (nếu rơi vào mấy trường hợp đã nói)
     
  13. 2ndCapricorn

    2ndCapricorn Sơ Nhập Giang Hồ

    Mình cũng đang quan tâm đến vụ này.
     
  14. thetrue

    thetrue Sơ Nhập Giang Hồ

    mình dùng mariadb. db khoảng 3 triệu records, 10GB. cũng đánh index, fulltext serach nhưng thêm limit, lọc keyword trước khi đưa vào filed nên dữ diệu trả về cũng nhanh.
     
  15. Nai

    Nai MiddleMan Staff Member

    Lọc keyword trước khi đưa vào field là sao bác. Vị dụ bài báo tên "xe container vượt đèn đỏ tông gần chết hơn 20 người" thì bác lọc ra key list key là: xe contaner, vượt đèn đỏ, đèn đỏ, đèn đỏ tông, tông gần chết, 20 người rồi đánh index mấy cái này à :D.
    Mà sau 1 ngày trời nghiên cứu elastic search thấy lằng nhằng quá nên tạm thời chuyển sang sphinx. Thấy cũng mượt hơn nhưng bị cái limit 4GB chưa biết tương lai sẽ ra sao {cry}
     
  16. thetrue

    thetrue Sơ Nhập Giang Hồ

    bỏ ký tự đặc biệt để cuối cùng keyword là thuần text, giới hạn số từ cần tìm kiếm vd "xe container vượt đèn" {beat_brick} xong rồi limit lấy ra 10 kết quả, khỏi pagination,... bla bla
     
  17. Nai

    Nai MiddleMan Staff Member

    Èo, cách đó cũng đỡ 1 phần giai đoạn đầu thôi. Content lên tầm 6 triệu record data khoảng 40GB là căng à nha. :D
     
  18. Thanh Nguyen

    Thanh Nguyen Bang Chúng

    Tại sao với đống content đó cụ không chia nhỏ thành 6 sites {big_smile}. Để mỗi site còn 1 triệu records. Và 1 sites đó lại chia nhỏ thành 10 sites con. Mỗi site còn 100k records. Thế là ngon. Được 60 sites với cái db ban đầu {big_smile}{big_smile}{big_smile}
     
  19. Nai

    Nai MiddleMan Staff Member

    Sao amazon hay mấy site truyện phim nó không làm như vậy mà nó dồn cả đống thể loại vào 1 site chi vậy cụ nhỉ. Chắc em cũng vô tình giống tụi nó :D
     
  20. Dung Le

    Dung Le Sơ Nhập Giang Hồ

    Bác @Nai cho hỏi thông tin ae nào đang nhận crawl data vậy, cho cái contact để mình hỏi giá cả nhé