by shigemk2

当面は技術的なことしか書かない

MySQL

binlogとは

MySQLデータベースサーバーで行われたすべてのデータの変更を記録するために使用されるログファイルである レプリケーション: binlogは、マスターサーバーで発生したデータの変更をスレーブサーバーに転送し、データベースのレプリケーションを実現するため…

mysqldumpの1044 Access denied when using LOCK TABLES

ポイントはロックテーブルへのアクセス。 michaelrigart.be ダンプされるテーブルに対する SELECT 権限、ダンプされるビューに対する SHOW VIEW、ダンプされるトリガーに対する TRIGGER、および --single-transaction オプションが使用されない場合には LOCK…

行ロック

特定の行だけ排他制御する。 MySQLだと SELECT xxxx FOR UPDATE; dev.mysql.com

SHOW COLUMNSとDESCRIBE

DESCRIBE ステートメントは、SHOW COLUMNS と同様の情報を提供します。セクション13.8.1「DESCRIBE 構文」を参照してください。 そして DESC は DESCRIBE の省略形式です。詳細については、セクション13.8.1「DESCRIBE 構文」を参照してください。 ってこと…

GROUP_CONCAT

集約してconcatして一つの文字列にまとめるあれ(デフォルトの区切り文字はカンマ) GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]] [SEPARATOR str_val]) ので、50 100 20 30みた…

max_user_connections vs Max_used_connections

max_user_connections 任意の特定のアカウントで実行できる同時接続の数 0だと無制限 Max_used_connections サーバーが開始されてから同時に使用された接続の最大数 似てるようで違う。

MyISAM InnoDB

マジモンの今更 MyISAM 昔のデフォルト テーブルごとに3種類のデータファイル 定義 インデックス レコード トランザクション対応してない ファイルへの書き込み InnoDB 今のデフォルト(5.5以降) トランザクション対応 クラスター化されたインデックス テーブ…

single-transaction

mysqldumpするときの小技 このオプションは、データのダンプ前に、トランザクション分離モードを REPEATABLE READ に設定し、START TRANSACTION SQL ステートメントをサーバーに送信します。これは、InnoDB などのトランザクションテーブルの場合にかぎって…

MySQL REFERENCES

ここが重要かもしれない。バージョンによっては機能したりしなかったりするらしいけど5.6でもマイナーバージョンによっては機能することもあるらしいからよくわからない For storage engines other than InnoDB, it is possible when defining a column to u…

STRICT_TRANS_TABLES

sql modeにSTRICT_TRANS_TABLESがあるとdefault not nullなのにnull入れようとしたらエラーになる sql modeにSTRICT_TRANS_TABLES入れなかったらdefault not nullでもINSERTできる RDS AuroraにSTRICT_TRANS_TABLESは入っていない docker-composeではよしな…

MySQL SET型

予め決められた値のなかでしかSETの値を決められないのはちょっと厳しい MySQL :: MySQL 5.6 リファレンスマニュアル :: 11.4.5 SET 型

MySQL timediff

timediff あとの時間を第一引数、さきの時間を第二引数 mysql> SELECT TIMEDIFF('2008-12-31 01:01:01.000000', '2008-12-31 01:01:00.000000'); +----------------------------------------------------------------------+ | TIMEDIFF('2008-12-31 01:01:0…

MySQL DO構文

式を実行して結果を返さない。(殆どの場合において)SELECTの短縮形らしいし、SELECTより若干高速。 DO SLEEP(5); MySQL :: MySQL 5.6 リファレンスマニュアル :: 13.2.3 DO 構文

MySQLのサーバーシステム変数一覧 リンク

MySQLのサーバーシステム変数一覧 リンク だからなんだっていえばそのとおりだけど MySQL :: MySQL 5.6 リファレンスマニュアル :: 5.1.4 サーバーシステム変数

INSERT IGNORE

重複キーエラー対策などに使われる。 IGNORE キーワードを使用した場合、INSERT ステートメントの実行中に発生したエラーは無視されます。たとえば、IGNORE を使用しない場合は、テーブル内の既存の UNIQUE インデックスまたは PRIMARY KEY 値を複製する行に…

REORGANIZE PARTITION

パーティションを削除すると、そのパーティションに格納されていたすべてのデータも削除されることを覚えておくことは非常に重要です。前の SELECT クエリーを再実行することで、これが本当であることを確認できます。 ってことで、データを削除しないでパー…

MySQL パーティション リンク

そのうち必要になるかも。 MySQL :: MySQL 5.6 リファレンスマニュアル :: 19.5 パーティション選択 MySQL :: MySQL 5.6 リファレンスマニュアル :: 19.2.3.1 RANGE COLUMNS パーティショニング

show tables

show tablesでviewも出せる MySQL :: MySQL 5.6 リファレンスマニュアル :: 13.7.5.14 SHOW CREATE VIEW 構文 MySQL :: MySQL 5.6 リファレンスマニュアル :: 13.7.5.38 SHOW TABLES 構文

MySQL DATEDIFF

Prestoとは並びが逆だし文字列でもOKなのだ あとUnitの指定もなくdayだけの演算。 MySQL :: MySQL 5.6 リファレンスマニュアル :: 12.7 日付および時間関数

MySQL集約関数一覧

MySQL集約関数一覧 JSON操作系は5.7から やっぱり SUM(IF(x = 0, 1, 0)) みたいな書き方 日本語ドキュメントは5.6まで MySQL :: MySQL 8.0 Reference Manual :: 12.20.1 Aggregate (GROUP BY) Function Descriptions

MySQLのDATE_ADDとDATE_FORMATのくみあわせ

MySQLのDATE_ADDとDATE_FORMATのくみあわせ SELECT DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -7 DAY), '%Y-%m-%d') MySQL :: MySQL 5.6 リファレンスマニュアル :: 12.7 日付および時間関数

MySQLでCASTが使える型一覧

MySQLでCASTが使える型一覧 BINARY[(N)] CHAR[(N)] DATE DATETIME DECIMAL[(M[,D])] SIGNED [INTEGER] TIME UNSIGNED [INTEGER] MySQL :: MySQL 5.6 リファレンスマニュアル :: 12.10 キャスト関数と演算子

MySQL Docker メモ

Environment Variables の項目を参照する。これの元ネタは、当然MySQLのリファレンスなわけど、↓に載っていないやつが使えるかどうかは分からない。max_allowed_packetなどちょっとした値をいじりたいときはdocker runで--max_allowed_packetを追加する Dock…

MySQL メーリス

メモ MySQL Lists

MySQL Sharding memo

データを複数のサーバに分散させること 水平分割 データを水平に分割するので、ホストAにはid 1-1000のレコードが、ホストBにはid 1001-2000のレコードが振り分けられている レプリケーションはデータの完全コピーなのでslaveはmasterと同等レベルのスペック…

ERROR 1396 (HY000): Operation CREATE USER

ERROR 1396 (HY000): Operation CREATE USER なんだろう。CREATE USERする前にGRANTを実行するとGRANTは通るしCREATE USERは出来ないしでうわっってなったけど、DELETE USERしたら大丈夫だった。

memo show processlist

memo show processlist どのスレッドが実行されているかを表示 state command time https://dev.mysql.com/doc/refman/5.6/ja/show-processlist.html

mysqldumpbackup progress

mysqldumpbackup progress mysqlbackupなら、--show-progressとかがつかえる pvコマンドでパイプするとか(試してない) https://dev.mysql.com/doc/mysql-enterprise-backup/3.11/ja/backup-progress-report-options.html

MySQL backup

論理バックアップ mysqldumpとかのコマンドでエクスポートする mysqldumpはシングルスレッド 物理バックアップ データベースのファイルを所定のディレクトリにコピーする rsyncとか RDSはSSHログイン出来ないのでこの方法は使えない XtraBackupも一部の方法…

memo TDE

memo TDE Transparent Data Encryptionの略。 保存データを暗号化する データはストレージに書き込まれる前に自動的に暗号化され、ストレージから読み込まれる時に自動的に復号化する 透過 RDSにおいては、TDEはOracle/SQL Server/MySQLなどに対応 透過的暗…