NoSQL, RDB, SEノウハウ

RDB NoSQLパフォーマンス

 

ざっくり覚える数字

ざっくり感が大事。

ちょっと好きかも?より大好き!の方が嬉しいでしょ?

MySQL

  • SELECTは100,000回/秒
  • UPDATE15,000回/秒

NoSQL

  • SELECTは200,000〜750,000回/秒
  • UPDATE30,000回/秒

データサイズ感

  • 100万レコード →  1GB

 

 

ディスク

  • オンメモリ + SSDがさいつよ

 

処理限界を知る

 

RDB

インメモリ時で、

  • SELECT
    100,000回/秒
  • INSERT
    15,000回/秒
  • UPDATE
    12,000回/秒

→パフォーマンスはディスクI/O, データ量の絞り込み, INDEXが鍵

 

NoSQL

  • SELECT
    200,000 〜 750,000回/秒
  • UPDATE
    30,000回/秒

 

負荷分散技術

 

レプリケーション

  • Master + Slave * n

SlaveのSELECTを処理するReadを増やすことで分散される

 

 

水平分割

  • テーブル単位のものをDBをわけてデータサイズとトラフィックを分散させる

→バイナリログの外部出力など対応すること

 

非同期書き込み

  • Q4Mなどメッセージング技術の利用
    Q4M = MySQLのキューストレージ

 

キャッシュ

  • ランキング
  • お気に入りなどの総数(仕様によっては1日1回更新とかすると楽)

 

RDBとNoSQLの使い分け

RDB

  • 事務処理や決済など正確性を求める処理

NoSQL

  • Googleの検索結果など順位の正確性より速度を求めるざっくりな処理

 

おっそいクエリ問題

 

1 + Nのようなクエリ

1つのクエリが問題なくても束になるような処理がある。

IN句を利用して1クエリで処理する

 

 

EXISTとINの使い分け

  • 主テーブルの選択度が高 +従属テーブルの 選択度が低
    →EXIST +サブクエリ
  • 主テーブルの選択度が低 +従属テーブルの選択度が高
    →IN + サブクエリ
  • 主テーブルの選択度が高 +従属テーブルの選択度が高
    →EXIST + サブクエリ

 

 

@see

Amazonおすすめ

iPad 9世代 2021年最新作

iPad 9世代出たから買い替え。安いぞ!🐱 初めてならiPad。Kindleを外で見るならiPad mini。ほとんどの人には通常のiPadをおすすめします><

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)