Bỏ wp vì quá ysl. Cần phương pháp thay thế

Discussion in 'Thảo Luận Chung' started by tranthetai, Jul 4, 2022.

  1. Quangsilic

    Quangsilic Khách Qua Đường

    Siêu nhân anh ạ :)
     
  2. Mr.BTD

    Mr.BTD Moderator Staff Member

    @command ngon quá bác, chia sẻ ae tí cách tối ưu site với core pass google với bác, lcp mình tối ưu hoài nó ko giảm mấy
     
  3. command

    command Bang Chúng

    Mr.BTD likes this.
  4. Mr.BTD

    Mr.BTD Moderator Staff Member

  5. command

    command Bang Chúng

    Nếu ae nào quan tâm tốc độ phản hồi từ phía CSDL với nhiều M records thì tham khảo và thử nghiệm MongoDB nhé, đây là demo monitor của server thấp nhất tại Hetzner (AX41-NVMe).

    Trong hình, máy chủ này (AX41-NVMe) sử dụng MongoDB với khoảng 30 databases, và database có nhiều records nhất tầm khoảng 18M records, thấp nhất khoảng 500k records. Tốc độ trung bình đọc dữ liệu ấn tượng phải ko nè :)

    Tuy nhiên, nếu sites các bác ko định hướng sử dụng vài chục triệu records trong tương lai thì dùng MySQL (phán đại thôi nhé, chứ mình chưa dùng MySQL với vài chục triệu rows bao giờ, chỉ dùng dưới 1M rows thôi)
    Screen Shot 2022-07-18 at 13.12.52.png
     
    Last edited: Jul 18, 2022
  6. Nai

    Nai MiddleMan Staff Member

    Này là đọc theo câu lệnh gì mà nhanh vậy anh.
    Em select where theo `id` của mysql nhanh cũng 2.3ms (tổng data này là 100m rows (tag, cat, post, reletionship table,..), riêng table results thì hơn 10m rows, chỉ index primary key)
    upload_2022-7-19_0-9-13.png
     
  7. no-reply

    no-reply Bang Chúng

    Db lớn chơi nosql thì chuẩn bài r b. Nếu thích dùng MySQL thì nên để Myisam.
     
  8. command

    command Bang Chúng

    @Nai ồ, MySQL chứa dữ liệu nhiều thế mà tốc độ quá chuẩn rồi, nếu tính bằng <20ms thì tốc độ ko khác biệt gì lắm. Bác có thể chia sẻ thêm về CSDL bác đang dùng như MySQL version nào? Loại engine Myisam hay InnoDB thế? Cấu hình my.conf tinh chỉnh thế nào vậy? và thông số VPS hay máy chủ ra sao thế?

    Còn với MongoDB có thông số trong hình mình chia sẻ thì chiếm đa số là select record qua hàm findOne() trên field đã được đánh index giống như select trong MySQL chỉ có 1 kết quả ấy, dĩ nhiên vẫn có find() để trả về nhiều records trong 1 query nhưng tỷ lệ này ko nhiều.
     
  9. Nai

    Nai MiddleMan Staff Member

    Em đang dùng server ở OVH. Engine em dùng InnoDB cho các table nào update realtime còn lại thì dùng MyISAM
    upload_2022-7-19_12-20-47.png
    =========================================================================================
    THONG TIN CO BAN
    =========================================================================================
    Cong nghe ao hoa :
    CPU model : Intel(R) Xeon(R) CPU E3-1245 v5 @ 3.50GHz
    So loi CPU : 8
    Toc do CPU : 3016.120 MHz
    Dung luong RAM : 31999 MB
    Dung luong Swap : MB
    Toc do I/O : 196MB/s
    --- Double Post Merged, Jul 19, 2022, Original Post Date: Jul 19, 2022 ---
    my.cnf
    PHP:
    [client]
    socket=/var/lib/mysql/mysql.sock

    [mysql]
    max_allowed_packet 128M

    [mysqld]
    local-infile=0
    ignore
    -db-dir=lost+found
    character
    -set-server=utf8
    datadir
    =/var/lib/mysql
    socket
    =/var/lib/mysql/mysql.sock


    tmpdir
    =/var/lib/mariadbtmp

    innodb
    =ON
    back_log 
    768
    max_connections 
    2000
    key_buffer_size 
    512M
    myisam_sort_buffer_size 
    512M
    myisam_max_sort_file_size 
    4096M
    join_buffer_size 
    1M
    read_buffer_size 
    1M
    sort_buffer_size 
    2M
    table_definition_cache 
    8192
    table_open_cache 
    8192
    thread_cache_size 
    384
    wait_timeout 
    1800
    connect_timeout 
    10
    tmp_table_size 
    768M
    max_heap_table_size 
    768M
    max_allowed_packet 
    128M
    #max_seeks_for_key = 4294967295
    #group_concat_max_len = 1024
    max_length_for_sort_data 1024
    net_buffer_length 
    16384
    max_connect_errors 
    100000
    concurrent_insert 
    2
    read_rnd_buffer_size 
    512K
    bulk_insert_buffer_size 
    8M
    query_cache_limit 
    1024K
    query_cache_size 
    160M
    query_cache_type 
    1
    query_cache_min_res_unit 
    2K
    query_prealloc_size 
    262144
    query_alloc_block_size 
    65536
    transaction_alloc_block_size 
    8192
    transaction_prealloc_size 
    4096
    default_storage_engine 
    InnoDB
     
    Vuonglechi, firefox and command like this.
  10. dangnhdev

    dangnhdev Khách Qua Đường

    Cho e hỏi frontend bác hay thuê ở đâu nhỉ? Chỉ thuê thiết kế thôi hay code cả luôn
     
  11. bmt511

    bmt511 Khách Qua Đường

    mysql hay mongodb k biết cách vẫn chết nhue thường. ví dụ trong bài toán search : mà cứ like%keyword% . thử tưởng tượng ra xem nó querry 20M róws từ tren xuông dưới. vài thằng đủ chết rồi
    - nên bài toàn chia ra : như search dùng công cụ như sphinxsearch, indexing
    ròi dùng làm search
    - sitemap : nhét 10000 lines thì cứ chia ra kiều : where id > $id limit 10000
    .....
    như vậy mỗi bài toán có cách tính riêng. phải cân nhắc tối ưu
    --- Double Post Merged, Nov 21, 2023, Original Post Date: Nov 21, 2023 ---
    cẩn trọng khi dùng MyISAM, read thì ok, như một lúc update liên tục vào table đó. nó lock table lại, k cẩn thận một số trường hơp delay một tá queue process trong mysql.
     
  12. Nai

    Nai MiddleMan Staff Member

    Table nào ko update mới dùng MyISAM thôi nè bác, ví dụ như tag thường là insert vào, còn lại update realtime là product,post.
    Ae nào soạn content sẵn thì MyISAM là an toàn hơn