MySQL: 高度な利用方法

MySQLデータの設定、最適化、エクスポート、インポート方法

👋 Stackhero ドキュメントへようこそ!

Stackhero では、運用負荷を大幅に軽減するフルマネージドの MySQL クラウド サービスを提供しています。本番環境向けのワークロードにも最適です:

  • 無制限の接続数とデータ転送。
  • データベース管理を容易にする統合型の phpMyAdmin Web インターフェース。
  • ワンクリックで簡単に行える アップデート
  • プライベートかつ専用インフラ上での安定した パフォーマンスと強固な セキュリティ

Stackhero なら、信頼性の高い MySQL データベースを数分でご利用開始いただけます。セットアップやメンテナンスにかかる時間を削減し、アプリケーション開発に集中できます。ぜひ Stackhero の MySQL クラウドホスティング をお試しください。

Stackheroでは、MySQLサーバーが処理できる同時接続数にハードコードされた上限はありません。アプリケーションの要件に合わせて、このパラメータをStackheroダッシュボードから柔軟に調整できます。

最大値をできるだけ高く設定したくなるかもしれませんが、実用的な上限を選択することをおすすめします。各オープン接続はサーバーメモリ(RAM)を消費するため、値を高くしすぎるとインスタンスに不要な負荷がかかり、データベースが不安定になる可能性があります。

データベースがInnoDBストレージエンジンを利用している場合は、Stackheroダッシュボード内の「InnoDB Optimizations」オプションを有効にすることでパフォーマンス向上が期待できます。

同様に、MyISAMストレージエンジンを使用している場合は、「MyISAM Optimizations」オプションを有効化することでパフォーマンスの改善が見込めます。

どちらのストレージエンジンを使用しているか、またはどちらの最適化オプションを選択すべきか分からない場合は、これらのオプションをデフォルトで有効にしておくのが一般的に安全です。ワークロードやリソース使用状況に応じて、後から細かく調整することも可能です。

mysqlmysqldumpなどのMySQLコマンドラインツールは、データのインポートやエクスポートなどの作業に非常に便利です。

これらのツールを利用する簡単な方法として、Dockerコンテナ内で実行する方法があります。このアプローチにより、ローカル環境をクリーンに保ち、手動インストールの手間を省くことができます。

Dockerを普段のワークフローで利用していなくても問題ありません。StackheroのCode-Heroをご覧ください。このブラウザベースの開発プラットフォームを使えば、ローカルに何もインストールせずにブラウザ上で直接作業できます。詳細やお試しは、StackheroのCode-Heroから数分で始められます。

Dockerを使い始めるには、以下のコマンドでMySQLコンテナを起動できます:

docker run -it -v $(pwd):/mnt mysql:<MYSQL_VERSION> /bin/bash

<MYSQL_VERSION>は必要なバージョンに置き換えてください。例えば、StackheroでMySQL 8.0.36-0を利用している場合は、8.0.36(末尾の-0は省略)を指定します。

コンテナが起動したら、次のコマンドで接続テストができます:

mysql -u root -p -h <XXXXXX>.stackhero-network.com -P <PORT>

このとき、カレントディレクトリがコンテナ内の/mntにマウントされています($(pwd):/mnt引数による)。この構成により、PCとコンテナ間でファイルのやり取りが容易になります。例えば、データベースをPCにバックアップしたい場合は、以下のコマンドを使用します:

mysqldump -u root -p -h <XXXXXX>.stackhero-network.com -P <PORT> <DATABASE> > /mnt/<DATABASE>.sql

データベースのバックアップ(「ダンプ」)を作成するには、mysqldumpツールをPCから直接利用できます。(Docker内で実行する場合は前節を参照してください。)

StackheroインスタンスからPCにデータベースをエクスポートするには、次のコマンドを実行します:

mysqldump -u root -p -h <XXXXXX>.stackhero-network.com -P <PORT> <DATABASE> > <DATABASE>.sql

<XXXXXX>.stackhero-network.com<PORT><DATABASE>はご自身のインスタンス情報に置き換えてください。コマンド実行後、rootパスワードの入力を求められます。その後、mysqldumpツールがデータベースのテーブルを<DATABASE>.sqlというファイルに保存します。

PCからStackheroインスタンスにデータベースをインポートするには、以下のコマンドを使用します:

mysql -u root -p -h <XXXXXX>.stackhero-network.com -P <PORT> <DATABASE> < yourDump.sql

yourDump.sqlはインポートしたいSQLファイル名に置き換えてください。