MySQLをわかりやすく:サイト上の注文・ユーザー・商品の保存場所
MySQL は Web で最も一般的なデータベースの一つです。多くのホスティングでは ユーザー(ログイン、メール、パスワード)、商品(名称、価格、在庫)、注文(カート内容、合計、支払い状態)がここに保存されます。WordPress、OpenCart、Bitrix、PHP 製の典型的な EC サイトなら、サイトの「記憶」は MySQL である可能性が高いです。経営者が SQL を書く必要はありませんが、顧客データがどこに どう 保存されているかを知ることは、ホスティング移行で注文を失わない、バックアップを timely に取る、「ディスク上のファイル」と「DB のテーブル」を混同しない、という意味で重要です。
- MySQL - リレーショナル DB:関連付けられたテーブルにデータ
- ユーザー - 専用テーブル:メール、パスワードハッシュ、ロール、登録日
- 商品 - カタログ:SKU、価格、説明、在庫
- 注文 - 顧客・商品・合計・配送状態の紐付け
- 主な利用先 - WordPress、WooCommerce、OpenCart、Bitrix、Laravel、多くのホスト
- 主なリスク - DB バックアップなし、全プロジェクト共通ログイン、古い MySQL
MySQL とは(やさしい説明)
MySQL はサーバー上でデータをテーブルに保存するソフトです。テーブルは Excel に似ています:行がレコード、列がフィールド。MySQL はサイト、管理画面、JavaScript カートを同時に扱い、二人が同じセルを上書きするのを防ぎ、テーブル同士を関連付けます。
典型的な流れ:
- 訪問者が「注文する」をクリック。
- PHP(または他 backend)がフォームデータを受信。
- PHP が MySQL に「注文作成」「在庫減」「メール保存」を指示。
- MySQL がサーバーディスクに書き込み - HTML ではなく DB ファイル。
- ユーザーに「ご注文ありがとうございます」- すでに MySQL からの読み取り結果。
重要: 商品画像、PDF、ロゴはファイルシステム(サーバーのフォルダ)にあります。MySQL はファイルへのパスとメタデータ(価格、名称、SEO タイトル)を保持します。
| 保存内容 | 物理的な場所 | 例 |
|---|---|---|
| ページ文、価格、メール | MySQL(テーブル) | wp_posts, oc_product |
| 商品写真、動画 | ディスク上のフォルダ | /uploads/2026/07/photo.jpg |
| サイトコード | PHP ファイル | index.php, プラグイン |
| ページキャッシュ | ファイルまたは Redis | 高速化用、真実の源ではない |
ユーザー・商品・注文の保存場所
ユーザー(users)
ユーザーテーブルは顧客・スタッフの「索引」:id、email/login、password_hash、role、created_at。
WordPress は wp_users、OpenCart は oc_customer、Bitrix はプレフィックス付き独自テーブル。1 ユーザー 1 行。
商品(products)
カタログは別テーブル:sku、name、description、price、quantity/stock、category_id。
カテゴリ・ブランドは他テーブルで外部キー連携。稼働中サイトで「Excel で価格修正」は機能しません。
注文(orders)
| テーブル | 内容 |
|---|---|
orders |
注文番号、user_id、合計、状態、配送先 |
order_items |
商品、数量、購入時価格 |
payments |
支払い状態、取引 ID |
order_status_history |
状態履歴 |
明細テーブルが別な理由: カタログ価格は変わるが、注文には購入時価格を order_items に保存。
MySQL とサイトの連携
ブラウザ → PHP/Python/Node.js → MySQL → 応答 → HTML/JSON → ユーザー
PHP がログイン確認、商品取得、トランザクションで注文作成。JavaScript は通常 MySQL に直接接続しません - PHP API 経由。
MySQL の物理的配置
共有ホスティング - 別サービス、phpMyAdmin。VPS - /var/lib/mysql/。クラウド(AWS RDS)- マネージド。
典型的な EC テーブル
users ──────┬──── orders ────── order_items ────── products
│ └──── payments
└──── addresses
categories ─── products
「3月の Nike スニーカー販売数」- こうしたテーブルへの SQL クエリ。経営者向け SQL も参照。
MySQL と主要 CMS
| CMS | デフォルト DB | 注文・顧客 |
|---|---|---|
| WordPress | MySQL / MariaDB | wp_users, WooCommerce |
| OpenCart | MySQL | oc_order, oc_customer |
| Bitrix | MySQL | 独自スキーマ |
| Django | 多くは PostgreSQL | MySQL も可 |
MariaDB は MySQL の互換フォーク。
MySQL vs PostgreSQL と Excel
Excel は単発計算用。運用注文は MySQL に。MySQL は PHP-CMS エコシステムの標準。
経営者が知るべきこと
- 毎日の DB バックアップ - 必須
- MySQL 認証情報 - 金庫の鍵同然
- MySQL バージョンを最新に
- 移行 = ファイル + .sql ダンプ + 設定
典型的な問題
サイト遅延、顧客重複、SQL インジェクション、データ増大。
まとめ
MySQL は典型的な PHP サイトでユーザー・商品・注文を保持。PHP が読み書き、JavaScript が表示、画像は別ファイル。
よくある質問
ホスティング上で MySQL データは物理的にどこに?
プロバイダーのサーバー - DB 専用ファイル。phpMyAdmin でアクセス。バックアップは .sql ファイル。
開発者なしで MySQL の注文を見られる?
部分的に phpMyAdmin で可能。誤編集でサイト破損の恐れ。日常は CMS 管理画面 を使用。
MySQL と MariaDB の違いは?
MariaDB - 互換フォーク。WordPress/OpenCart では互換。バージョンとバックアップが重要。
ホスティング変更で注文は失われる?
ダンプ移行すれば失われない。.sql なしでファイルのみコピーなら失う。
Tilda ランディングだけなら MySQL は必要?
Tilda 単体では不要 - リードはビルダー側。WordPress、OpenCart、独自会員があれば必要。