カテゴリー: SQL

MySQL

【Munin】 MySQL InnoDB free tablespace UNKNOWNs: Bytes free is unknown.

  Munin-notification for net::example.net net :: example.net :: MySQL InnoDB free tablespace UNKNOWNs: Bytes free is unknown.     # /etc/my.cnf 自動拡張のサイズ innodb_autoextend_increment = 64 …

MySQL, SQL, SEノウハウ

中間テーブル 関連実体 intermediate table

  リレーション AとBのテーブルがあった時に、AのレコードがBのレコードにいくつかリレーション(関係)を持つかを考える。     1対1の関係 将来も1対1のリレーションであるなら、そもそもテーブルを分割する必要がない     1対多の関係 通常のリレーション playerテーブルのサトシくんはポケモンをたくさん所有しています。   更 …

MySQL, Linux

MySQLのデータディレクトリを変更する

  ディレクトリの作成 # mkdir -p /home/mysql # chmod 755 /home/mysql # chown mysql:mysql -R /home/mysql       新しいディレクトリにデータを複製し、元を削除 # cp -rfp /var/lib/mysql/* /home/mysql/ # rm -rf /var/lib/mysq …

SQL

SQL作成 考え方

  まずは表示させたい結果の列名を考える if 関数SUM, COUNTは必要  ⇒列名に対してSUMやCOUNTを入れて AS SUMやCOUNT後に条件を加える必要がある?  ⇒HAVING if GROUP BYが必要?  ⇒GROUP BYを使う必要がある時はそれを基準に表示結果を考える GROUP BY 句の後に条件を加える必要がある?  ⇒HAVING if テーブル結合は必 …

MySQL, SEノウハウ

MySQL 外部キー制約のデッドロック

外部キー制約に伴うロックの小話 from ichirin2501   外部キー(FOREIGN KEY)制約を利用している場合、 子テーブルに追加、更新や削除を行う時は、必ず親テーブルの対象のidに対して排他ロックを行ってから、更新や削除、追加を行う。 親テーブルの該当idに対して排他ロックを取る 子テーブルの該当行に対して追加、更新、削除等を行う これならロックは起こらない。   &n …

MySQL, AWS

RDS MySQL, PostgreSQL スロークエリ関連ログの出力

    パラメータグループを変更させてスロークエリを有効化させる   MySQL slow_query_log 許可された値:1 or 0 スロークエリログを有効化する場合は1 general_log 許可された値:1 or 0 すべてのログを出力する場合は1 log_queries_not_using_indexes 許可された値:1 or 0 インデックスを利用し …

MySQL

MySQLレプリケーション再接続設定と再接続時系列

    会社の記事に投稿したもの。基本的に下記の値で安定するけれど、きちんと時系列を把握しておいた方が良い。 https://sys-guard.com/post-12263/ スレーブからマスターへ接続するSQL文 MySQLのレプリケーションというと下記のようにスレーブからマスターに接続をかけます。 mysql> CHANGE MASTER TO MASTER_HOS …

MySQL, SQL

SQLアンチパターン本購入。

SQLアンチパターン ID リクワイアド(とりあえずID) ⇒他のテーブルで共通名でいいから分かりやすい名前を ジェイウォーク ⇒交差テーブル キーレスエントリ(外部キー嫌い ※アプリ内で整合性を取ろうとする、アプリ以外からゴミデータが入る場合がある) ⇒外部キー制約を宣言する とりあえず削除フラグ ⇒状態を持たせる NEWや、有効、中止、キャンセル、廃止予定など ⇒全てのテーブルに削除フラグはお …