← Volver al listado

MySQL en lenguaje sencillo: dónde se guardan pedidos, usuarios y productos en su sitio web

MySQL es una de las bases de datos más extendidas en la web. En la mayoría de los hostings almacena usuarios (logins, email, contraseñas), productos (nombres, precios, stock) y pedidos (contenido del carrito, total, estado del pago). Si tiene WordPress, OpenCart, Bitrix o una tienda típica en PHP, la "memoria" del sitio muy probablemente es MySQL. No necesita escribir consultas SQL como dueño de negocio, pero entender dónde y cómo se guardan los datos de clientes significa no perder pedidos al cambiar de hosting, hacer copias de seguridad a tiempo y no confundir "archivos en disco" con "tablas en la base de datos".

  • MySQL - base de datos relacional: datos en tablas con relaciones
  • Usuarios - tabla aparte: email, hash de contraseña, rol, fecha de registro
  • Productos - catálogo: SKU, precio, descripción, stock
  • Pedidos - vínculo entre cliente, productos, total y estado de envío
  • Dónde aparece - WordPress, WooCommerce, OpenCart, Bitrix, Laravel, muchos hostings
  • Riesgo principal - sin backup de BD, un login para todos los proyectos, MySQL obsoleto

Qué es MySQL en lenguaje sencillo

MySQL es un programa en el servidor que guarda datos en tablas. Una tabla se parece a Excel: filas son registros, columnas son campos. La diferencia es que MySQL atiende el sitio, el panel de admin y el carrito JavaScript a la vez, evita que dos gestores "sobreescriban" la misma celda y enlaza tablas entre sí.

Flujo típico del sitio:

  1. El visitante pulsa "Realizar pedido".
  2. PHP (u otro backend) recibe los datos del formulario.
  3. PHP envía comandos a MySQL: "crear pedido", "descontar stock", "guardar email del cliente".
  4. MySQL escribe en el disco del servidor - en archivos de base de datos, no en una página HTML.
  5. El usuario ve "Gracias por su pedido" - eso ya es lectura desde MySQL.

Importante: imágenes de productos, PDF y logos están en el sistema de archivos (carpetas del servidor). MySQL guarda la ruta al archivo y metadatos: precio, nombre, título SEO. Si borra la carpeta uploads, en la base quedarán rutas de imagen rotas.

Qué se guarda Ubicación física Ejemplo
Texto de página, precio, email MySQL (tablas) wp_posts, oc_product
Foto de producto, video Carpetas en disco /uploads/2026/07/photo.jpg
Código del sitio Archivos PHP index.php, plugins
Caché de páginas Archivos o Redis aceleración, no "fuente de verdad"

Dónde se guardan usuarios, productos y pedidos

Usuarios

La tabla de usuarios es el "fichero" de clientes y empleados. Campos típicos:

  • id - número único del registro;
  • email / login - para entrar al área personal;
  • password_hash - no la contraseña en claro, sino su hash (más seguro);
  • role - cliente, gestor, administrador;
  • created_at - fecha de registro.

En WordPress es wp_users, en OpenCart oc_customer, en Bitrix tablas propias con prefijo. Un usuario - una fila. Si un cliente hizo cinco pedidos, sigue siendo uno en users y los pedidos referencian su id.

Productos

El catálogo es una tabla aparte (o varias enlazadas):

  • sku - código interno;
  • name, description - nombre y descripción para el sitio;
  • price - precio; a menudo special_price para promociones;
  • quantity / stock - stock en almacén;
  • category_id - enlace a categoría "Calzado", "Electrónica".

Categorías, marcas, filtros - otras tablas enlazadas con claves foráneas. Por eso "arreglar el precio en Excel" no funciona en un sitio en vivo: el precio está en MySQL y el sitio lo lee vía PHP en cada vista de producto.

Pedidos

Un pedido es un evento que une cliente, productos y dinero:

Tabla Qué guarda
orders Número de pedido, user_id, total, estado, dirección de envío
order_items Qué productos, cantidad, precio en el momento de compra
payments Estado del pago, ID de transacción Payme/Stripe/Click
order_status_history "Creado → Pagado → Enviado → Entregado"

Por qué tabla de líneas aparte: el precio del catálogo cambia, pero el pedido debe conservar el precio de compra. Por eso order_items guarda una instantánea del precio.

Cómo MySQL trabaja con su sitio web

El sitio no abre MySQL directamente. La cadena es:

Navegador → PHP/Python/Node.js → MySQL → respuesta → HTML/JSON → usuario

PHP (WordPress, Bitrix, OpenCart) es el "traductor" más habitual. Comprueba login y contraseña, selecciona productos, crea pedidos en transacción.

JavaScript en el navegador normalmente no habla con MySQL directamente - sería un agujero de seguridad. JS llama a una API (script PHP) y este trabaja con la base.

Dónde vive físicamente MySQL

En hosting compartido MySQL es un servicio aparte: recibe host, nombre de BD, login y contraseña. Gestión vía phpMyAdmin o panel del hosting.

En VPS/VDS MySQL lo instala el administrador; archivos en /var/lib/mysql/ (Linux).

En la nube (AWS RDS, DigitalOcean Managed DB) - servicio gestionado con suscripción.

Tablas típicas de tienda online

Esquema simplificado:

users ──────┬──── orders ────── order_items ────── products
            │         │
            │         └──── payments
            │
            └──── addresses

categories ─── products
brands ─────── products

Cuando preguntan "cuántas zapatillas Nike vendimos en marzo" - es una consulta SQL a esas tablas. Más sobre SQL para directivos en otro artículo.

MySQL y CMS populares

CMS / plataforma BD por defecto Dónde están pedidos y clientes
WordPress MySQL / MariaDB wp_users, wp_posts, WooCommerce: wp_wc_*
WooCommerce MySQL wp_posts, tablas meta
OpenCart MySQL oc_order, oc_customer, oc_product
1C-Bitrix MySQL Esquema propio, integración 1C
Laravel / PHP custom MySQL o PostgreSQL Tablas por migraciones
Django PostgreSQL más a menudo MySQL también posible

MariaDB es un fork de MySQL compatible. Muchos hostings dicen "MySQL" e instalan MariaDB - para el sitio casi no hay diferencia.

MySQL frente a PostgreSQL y Excel

Criterio Excel MySQL PostgreSQL
Pedidos simultáneos del sitio No
Hosting WordPress típico - Incluido Menos frecuente
Analítica compleja Limitada Buena Muy buena
Coste inicial $0 $0 - $20/mes Similar

Para el dueño del negocio: MySQL no es "peor" que PostgreSQL - es el estándar del ecosistema PHP-CMS. Cambiar MySQL por PostgreSQL "porque sí" en WordPress funcionando es gasto innecesario.

Excel para cálculos puntuales. Pedidos y clientes operativos - en MySQL.

Qué debe saber el dueño del negocio

Backup de la base - obligatorio

Perder MySQL sin backup = perder todos los pedidos, clientes y contraseñas (hashes). Mínimo: backup diario automático, dump manual antes de actualizaciones, copia fuera del mismo servidor.

Credenciales MySQL

Login y contraseña de BD - como llave de caja fuerte. Usuario de BD separado por proyecto.

Versión MySQL

MySQL 5.7 obsoleto - riesgo de seguridad. En auditoría SEO se revisa versión de BD y PHP.

Migración de hosting

Migración = archivos + dump MySQL + config. Copiar solo public_html - el sitio abre pero no hay pedidos.

Problemas y riesgos típicos

"El sitio va lento" - ¿culpa de MySQL?

A veces sí: sin índices, catálogo enorme sin optimizar, hosting barato saturado. A veces no: plugins pesados, sin caché. La base es parte del rendimiento.

Clientes duplicados y pedidos "perdidos"

Importación manual desde Excel, dos formularios sin sincronizar, fallo de pago. Solución: transacciones, webhooks, CRM.

Ataque por inyección SQL

PHP "crudo" sin consultas parametrizadas. Tras hackeo WordPress revisar admins en wp_users.

Cuando MySQL "no se ve" pero existe

  • Constructores (Tilda, Wix) - datos en sus servidores.
  • CRM SaaS - clientes en la nube CRM.
  • Marketplaces - pedidos en la plataforma.

Con dominio propio, WordPress, OpenCart, Bitrix - casi seguro hay MySQL.

Resumen

MySQL es donde viven usuarios, productos y pedidos en un sitio PHP típico. PHP lee y escribe MySQL; JavaScript muestra el resultado; imágenes en archivos aparte.

El dueño debe: exigir backup de BD, no guardar pedidos solo en Excel, migrar dump MySQL al cambiar hosting.

Preguntas frecuentes

¿Dónde se guardan físicamente los datos MySQL en mi hosting?

En los servidores del proveedor - archivos de base de datos. Acceso vía phpMyAdmin o panel. Backup - archivo .sql descargado o copia automática.

¿Puedo ver pedidos en MySQL sin programador?

Parcialmente. En phpMyAdmin se ven filas, pero editar sin saber puede romper el sitio. Para el día a día use admin del CMS o CRM.

¿En qué se diferencia MySQL de MariaDB?

MariaDB es un fork compatible de MySQL. Para WordPress, OpenCart y Bitrix son intercambiables. Importa la versión y los backups.

¿Perderé pedidos si cambio de hosting?

No, si migra el dump de la base. , si copia solo archivos sin .sql.

¿Necesito MySQL si solo tengo un landing en Tilda?

No para Tilda - leads en el constructor o email/CRM. si además hay WordPress, OpenCart o área personal propia.

Contacto