DB: Shardingについて


     小さい量のデータはともかく、大きな量のデータを使えば、データベースのロードは重いです。 それで、データを分散する必要があります。デーダベースを水平や垂直という二つの分けて分割します。 
   
   「水平分割」とは、テーブルのレコード単位で、別のテーブルで扱います。
    例えば、user_idを100で除算して、テーブル自体を100に分割します。 
   
   「垂直分割」とは、テーブル内の一部の列だけを垂直に分割します。特に更新が多い項目だけを別テーブルに切り出します。
     例えば、ユーザー情報の更新頻度が低い項目(user_loginID, user_descriptionなど)と更新頻度が高い項目(session_idなど)を別のテーブルに分割します。  

     Shardingすることによって、DB性能、管理しやすさ、可用性がアップします。ただ、テーブルを簡単にJoinすることができなくなるので、設計面で考慮すべきことが増えるかもしれません。

0 留言:

發佈留言