mysql
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| mysql [2018/12/21 01:54] – [MySQL] nullpon | mysql [2026/05/04 10:41] (現在) – [mysqldump] nullpon | ||
|---|---|---|---|
| 行 4: | 行 4: | ||
| ネットの情報は間違いも多い。鵜呑みにせず公式のマニュアルで確認すること。もちろんこのページの情報も鵜呑みにしないこと。きちんとマニュアルで調べる。すべての情報はマニュアルに掲載されている。公式サイト以外でもオライリーの書籍(実践ハイパフォーマンス等)はほぼ無条件で信用してもいいだろう。 | ネットの情報は間違いも多い。鵜呑みにせず公式のマニュアルで確認すること。もちろんこのページの情報も鵜呑みにしないこと。きちんとマニュアルで調べる。すべての情報はマニュアルに掲載されている。公式サイト以外でもオライリーの書籍(実践ハイパフォーマンス等)はほぼ無条件で信用してもいいだろう。 | ||
| + | |||
| + | ===== DDLクエリが終わらない ===== | ||
| + | |||
| + | alter tableがなかなか終わらない場合、プロセスリストを見てみよう | ||
| + | |||
| + | < | ||
| + | show processlist | ||
| + | |||
| + | or | ||
| + | |||
| + | show full processlist | ||
| + | </ | ||
| + | |||
| + | '' | ||
| + | |||
| + | ありがちなのはGUIのデータベースクライアントツールがトランザクションを張っているケース(例えばDBeaverはテーブルを開くだけでトランザクションを作成する)。アプリを閉じましょう | ||
| ===== readonlyが効かない ===== | ===== readonlyが効かない ===== | ||
| 行 13: | 行 29: | ||
| を実行しても書き込みできてしまう。 | を実行しても書き込みできてしまう。 | ||
| - | アプリから接続しているMySQLユーザがsuper権限を持ってませか? 特権ユーザも書き込み不可にしてしまうとreadonlyを解除できなくなってしまうので特権ユーザには効きません。もしアプリからrootで接続しているならば、アプリ用のユーザを作るべき | + | super権限を持っているユーザにはread_onlyは効かない。セキュリティ上の観点からもアプリからはsuper権限を持たないユーザで接続するのをオススメする。 |
| ===== rootログインできない! ===== | ===== rootログインできない! ===== | ||
| 行 379: | 行 395: | ||
| テーブル名は小文字統一などのルールを定めて開発すべき。 | テーブル名は小文字統一などのルールを定めて開発すべき。 | ||
| - | ===== mysqldump ===== | ||
| - | データベースhogeをダンプ | ||
| - | $ mysqldump hoge -u fuga -p -q > db_hoge_dump.sql | ||
| - | テーブル構造のみ | ||
| - | $ mysqldump hoge -u fuga -p -q --no-data > db_hoge_creata_table.sql | ||
| - | 文字化けする場合は、データベースの初期文字コードと同じ値を指定する。例えばデフォルトがlatin1ならば… | ||
| - | $ mysqlnump hoge -u fuga -p -q --default-character-set=latin1 > db_hoge_dump.sql | ||
| - | |||
| - | ただし、--default-character-setを設定するとダンプデータでset names latin1が実行されているため、ダンプデータを実際の文字コードに置き換える必要がある。よりベターなのは、データベースにデフォルト文字コードを変更する事。 | ||
| ===== ランダムに一行取得 ===== | ===== ランダムに一行取得 ===== | ||
| 行 460: | 行 467: | ||
| Fulltextインデックスは再構築にも時間がかかるしメンテナンスが死ぬほどめんどくさいのでオススメしない。他の全文検索ライブラリを併用するのがいいだろう。 | Fulltextインデックスは再構築にも時間がかかるしメンテナンスが死ぬほどめんどくさいのでオススメしない。他の全文検索ライブラリを併用するのがいいだろう。 | ||
| + | |||
| + | |||
| + | ===== JSON型カラム ===== | ||
| + | |||
| + | JSONフィールドの値で検索する | ||
| + | |||
| + | <code sql> | ||
| + | where colName->' | ||
| + | |||
| + | where JSON_EXTRACT(colName, | ||
| + | </ | ||
| + | |||
mysql.1545357267.txt.gz · 最終更新: by nullpon