カテゴリー: SQL

MySQL

MySQL5.6.22以下注意 SET GLOBAL sql_log_bin

  MySQLのレプリケーション環境を運用していると、バイナリログへの記録を一時的に止めるためにsql_log_bin=0を実行したことがあるだろう。これを「set GLOBAL sql_log_bin=0」と、グローバル変数への変更として実行すると大変なことになる、という指摘。TwitterのMySQLエンジニア、Jeremy Cole氏の提言。   MySQL 5.5.41、5.6. …

MySQL

MySQL レプリケーション監視スクリプト

  レプリケーション監視スクリプト     replication_check.sh #!/bin/sh #PASSWORD=”パスワードを入力” EMAIL=hoge@example.net DOMAIN=crient.com CRIENT=”もげ株式会社” #eval “`mysql -u root -p${PASSWORD} -e ‘show slave status \ …

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 …