カテゴリー: RDB

RDB

複合ユニークキー制約

  idカラムのみを主キーにして、   他に複合ユニークindexをつける戦略。 複合主キーよりid + 複合Uniqueキー     Amazonおすすめ iPad 9世代 2021年最新作 iPad 9世代出たから買い替え。安いぞ!🐱 初めてならiPad。Kindleを外で見るならiPad mini。ほとんどの人には通常のiPadをおすすめします><

RDB

カラムにINDEXを貼る基準

  カーディナリティ 絡むの種類の絶対値のこと   カーディナリティが5%以下の時   5%以下ならIndexを貼る価値がある WHEREやJOIN … ONでの結合対象カラム   Amazonおすすめ iPad 9世代 2021年最新作 iPad 9世代出たから買い替え。安いぞ!🐱 初めてならiPad。Kindleを外で見るならiPad mini。ほとん …

RDB, SQL

EXISTSとINの使い分け【SQL】

  EXISTSとINは場合によって使い分ける。 間違うと遅くなる…🐱 結論として 従属表の選択性が高い場合 → 従属表から先に絞り込むIN 従属表の選択性が低い場合 → 主表から先に絞り込むEXISTS 両方の選択性が低い場合 → EXISTS 本の検索による例   世界の本のデータベース bookを主表、book_categoryを従属表とする 主表 bookテ …

RDB

【工事中】Laravel MySQLどうやら我々はランキングを作る必要があるらしい

では作業しようか。。     毎回作業するのはあれなので、バッチ処理で毎月実行されるようにしなくてはいけない 1ヶ月のキャッシュで良いかな?       Amazonおすすめ iPad 9世代 2021年最新作 iPad 9世代出たから買い替え。安いぞ!🐱 初めてならiPad。Kindleを外で見るならiPad mini。ほとんどの人には通常のiPadをおす …

RDB

Laravel カンマ区切りで登録されているデータの扱い

プロジェクトによって中間テーブルではなくて、カラムに1次元配列の値があるプロジェクトがあるので対処する必要がある。 この設計って便利なのか?🐱❓ データの取得を考えても中間テーブルの方がシンプルに見えるが。。   🍜カンマ区切りの1次元配列での値保存 この設計って便利なの? 私はよわよわPGなんで教えて欲しい…💦 中間テーブルのほうがシンプルで良いと思うのだが🐱❓https: …

RDB

ログインロックテーブル設計 WPプラグインから学ぶ

    WP Limit Login Attemptsから学ぶ ログイン回数制限でのプラグイン。 アプリのチェックイン回数制限なんかもこの応用でできるね!🐱✨   wp_user_login_logテーブル     wp_limit_loginテーブル login_attempts: ログイン失敗回数を記録 attempt_time: ログイン失敗 …

NoSQL, RDB, SEノウハウ

RDB NoSQLパフォーマンス

  ざっくり覚える数字 ざっくり感が大事。 ちょっと好きかも?より大好き!の方が嬉しいでしょ? MySQL SELECTは100,000回/秒 UPDATE15,000回/秒 NoSQL SELECTは200,000〜750,000回/秒 UPDATE30,000回/秒 データサイズ感 100万レコード →  1GB     ディスク オンメモリ + SSDがさいつよ …

MySQL, RDB, SQL

MySQL5.7 いいね機能のSQL

    SQLの実行順序おさらい   SELECT 列の抽出対象 FROM テーブル名 WHERE 行の絞り込み条件 GROUP BY hoge_colum HAVING 100 > amount Aテーブルの列と行を切り出しイメージをする Bテーブルの列と行を切り出しイメージをする ONで結合条件を指定 WHEREで行を絞りこむ GROUP BYでグループ化 …

RDB

Laravel5 複合主キー

    複合主キーはどういう時利用するの?   履歴系 購入者id + 商品id + 購入日時 WordPress『wp_term_relationships』テーブル 外部テーブルのサロゲートキーを集中管理   ターゲット系 例 プッシュ通知でのお知らせ お知らせテーブル お知らせターゲットテーブル お知らせターゲットテーブルはお知らせidとお知らせするu …

RDB

【工事中】閉包テーブルモデル

      @see 閉包テーブル (Closure Table) に順序を持たせソートした結果を取得する 閉包テーブルモデル わかりやすい、他の特殊構造も豊富 Laravel Laravelで閉包テーブル(Closure Table) を簡単に実現してくれるライブラリ ClosureTable franzose/ClosureTable   Amazonおすすめ i …

RDB, SEノウハウ

DB, API設計でのINT型

  DB, API設計でのINT型留意点 データベース設計の正規化ではnullは不許可 WorkBenchのフラグ欄を真偽値型のBoolean(TINYINT)を選択する Swagger Editor ・真偽値はtypeをbooleanにする ・21億4,000万 ・超える可能性がある →BIGINT ・超えない → INT32 自動採番の主キーはBIGINT(INT64)にしています。 …