初回設定
日本語を使用する際は、文字コードを「utf8-general-ci」へ設定しましょう。
XAMPPのPHPMyadmin?初期値が文字化けするのになっているΣ(・ω・ノ)ノ
【MySQL】Homebrewコマンド
ターミナルで実行するコマンド
サービスリスト
brew services list
MySQLのステータスが started
でなければ、MySQLは動作していません。
MySQL起動コマンド
brew services start mysql
MySQL停止コマンド
brew services stop mysql
【MySQL】コマンド
ターミナルで実行するコマンド
dump:バックアップ
STGサーバーと本番サーバーは、バッチで自動バックアップしている会社さんは多いんですけど、開発環境は、バックアップしていない会社もありますので一週間に一回ぐらい自分でバックアップしておきましょう(^_-)-☆
Windowsコマンドプロンプトでの区切り文字は「\」です。
- データベース全体
mysqldump -u ユーザー名@ホスト名 -p -h ホスト名 データベース名 < 保存場所/ファイル名
- 単体テーブル
mysqldump -u ユーザー名@ホスト名 -p -h ホスト名 データベース名 テーブル名 < 保存場所/ファイル名
- 複数テーブル
mysql -u ユーザー名@ホスト名 -p -h ホスト名 データベース名 テーブル名 テーブル名 < 保存場所/ファイル名
dump:復元
- dumpデータの読込み
mysql -u ユーザー名@ホスト名 -p -h ホスト名 データベース名 < 保存場所/読込みファイル名
CRUD:create,read,update,delete
SQLの基本操作
【DROP TABLE】テーブル削除
※全テーブル削除は大変危険な為、コマンドはエディタで作成してから使いましょう。
- 全テーブル削除
DROP TABLE
- 指定のテーブル削除
DROP TABLE テーブル名, テーブル名
【 INSERT 】レコード作成
INSERT
INSERT INTO User (name, age) VALUE ('kenshi', 30);
BULK INSERT
BULK INSERT User VALUES ('sato', 32), ('kenshi', 30), ('yoshi', 24);
INSERTとBULK INSERTの速度チェック
今回は、データ新規登録時の実行速度を検証する。
検証内容
- WindowsCommandPrompt(CMD)
CMDからMySQLを起動し、SQL文を直接実行
- ファイル読込み
SQL文を記述したファイルをCMDから実行
- 検証データ
マスタ系10000件(9項目、ID,更新日,作成日…etc)で検証
検証結果
登録方法 | CMD | ファイル読込み |
---|---|---|
INSERT | 20分 | 16分 |
BULK INSERT | 2分 | 5秒 |
※CMDは、Windowsコマンドプロンプトから、MySQLを起動しQueryをペーストし実行
BULK INSERTをファイルに記述し、MySQLへ流し込む方法が早いことがわかった。
プレースホルダのエラー
2018/12時点
MySQLのプレースホルダの上限が「65535」個となっている。
7項目の10000データをPHPよりインサートした際に、出現したエラー
良い解決策が見つからず、1000行単位で分割し登録する方法にした。
便利なやつ
タイトルは気にしないでくれ!!
オートインクリメントのリセット
テストデータ作成している時に使う事がある。
・サンプルデータを削除
・テストデータを作成したり削除したりする時
ALTER TABLE `tablename` auto_increment = 1;
1を変更して1000にして、開発環境とSTGでIDを意図的に被らせないで作ったりできます。
外部制約を外す
これね!ミスったデータ消すのに本当面倒ですよね、、、
一旦外部キーを無効化
SET FOREIGN_KEY_CHECKS = 0
削除した後に戻す。
SET FOREIGN_KEY_CHECKS = 1
以上٩(•̤̀ᵕ•̤́๑)ᵒᵏᵎᵎᵎᵎ
テーブルの文字コード変更
テーブル定義の文字コード変更
ALTER TABLE 「テーブル名」 CHARSET = utf8mb4;
既存のカラムの文字コード変更
ALTER TABLE 「テーブル名」 CONVERT TO CHARSET utf8mb4
コメント