by shigemk2

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

MySQL

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などに対応 透過的暗…

mysqldump create-options

mysqldump create-options MySQL 固有のテーブルオプションを CREATE TABLE ステートメントに含めます。 これをつけないとauto incrementとかがなくなってしまう。 https://dev.mysql.com/doc/refman/5.6/ja/mysqldump.html

mysqldump quick option

mysqldump quick option このオプションは大規模なテーブルのダンプに便利です。これは mysqldump に対して、テーブルのすべての行のセットを取得して、書き出す前にメモリーにバッファリングするのではなく、サーバーから 1 行ずつ行を取得することを強制し…

memo processlist

memo processlist show processlist; の代替。 SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST

memo mysqldump

100GBのDBをリストアするのにかかる時間の目安はおおよそ2時間 nohupでバックグラウンドジョブとして実行したほうが良い リストアにsourceを使うとめっちゃ時間かかる gzするとバックアップが遅くなるかもしれない yakst.com

rds memo

rds memo 基本だけど。パラメータグループはDBのパラメータ設定で、オプショングループはDBの追加設定。チューニングが必要なのはパラメータグループの方。

Installing MySQL on Linux

Installing MySQL on Linux LinuxにMySQLをインストールする公式 プロトコルはhttps https://dev.mysql.com/doc/refman/5.5/en/linux-installation.html https://dev.mysql.com/doc/refman/5.5/en/linux-installation-native.html