← 記事一覧へ

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 カートを同時に扱い、二人が同じセルを上書きするのを防ぎ、テーブル同士を関連付けます。

典型的な流れ:

  1. 訪問者が「注文する」をクリック。
  2. PHP(または他 backend)がフォームデータを受信。
  3. PHP が MySQL に「注文作成」「在庫減」「メール保存」を指示。
  4. MySQL がサーバーディスクに書き込み - HTML ではなく DB ファイル。
  5. ユーザーに「ご注文ありがとうございます」- すでに MySQL からの読み取り結果。

重要: 商品画像、PDF、ロゴはファイルシステム(サーバーのフォルダ)にあります。MySQL はファイルへのパスメタデータ(価格、名称、SEO タイトル)を保持します。

保存内容 物理的な場所
ページ文、価格、メール MySQL(テーブル) wp_posts, oc_product
商品写真、動画 ディスク上のフォルダ /uploads/2026/07/photo.jpg
サイトコード PHP ファイル index.php, プラグイン
ページキャッシュ ファイルまたは Redis 高速化用、真実の源ではない

ユーザー・商品・注文の保存場所

ユーザー(users)

ユーザーテーブルは顧客・スタッフの「索引」:idemail/loginpassword_hashrolecreated_at

WordPress は wp_users、OpenCart は oc_customer、Bitrix はプレフィックス付き独自テーブル。1 ユーザー 1 行。

商品(products)

カタログは別テーブル:skunamedescriptionpricequantity/stockcategory_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、独自会員があれば必要

お問い合わせ