カテゴリー
SQL システム開発技術

【SQL】MySQLメモ

初回設定

日本語を使用する際は、文字コードを「utf8-general-ci」へ設定しましょう。
XAMPPのPHPMyadmin?初期値が文字化けするのになっているΣ(・ω・ノ)ノ

【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ファイル読込み
INSERT20分16分
BULK INSERT2分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

作成者: kenshi

ゲーム大好きです。
ApexLegends, Arkやっています。
携帯販売員4年(240万)

プログラマー3年(350万)

フリーランスエンジニア1年(500万)

アーカイブを表示

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です