WooCommerce używa jako bazy danych MySQL lub w pełni zgodnego odpowiednika MariaDB, czyli tej samej relacyjnej bazy, na której działa WordPress. Jako wtyczka WordPressa WooCommerce nadbudowuje istniejącą bazę WordPressa i dodaje własne tabele na produkty, zamówienia, klientów i ustawienia. Jedno zmieniło się w nowszych wersjach i ma największe znaczenie w 2026 roku: to, gdzie żyją zamówienia. Nowoczesny WooCommerce przechowuje je w dedykowanych tabelach wysokowydajnego przechowywania zamówień (HPOS), a nie w dawnych tabelach wpisów. Ten przewodnik omawia, jakiej bazy używa WooCommerce, jak zorganizowane są dane i jak utrzymać bazę szybką.
Jakiej bazy danych używa WooCommerce?
WooCommerce używa MySQL, dziedzicząc bazę bezpośrednio z WordPressa. Po instalacji nie zmienia typu bazy; nadbudowuje istniejącą bazę WordPressa, dodając tabele na dane e-commerce, zwykle z przedrostkiem wc_, obok własnych tabel WordPressa na wpisy, użytkowników, komentarze i opcje.
MariaDB to alternatywa typu drop-in. Jest forkiem MySQL autorstwa jego pierwotnych twórców, a wiele hostingów uruchamia ją zamiast MySQL bez zmian w WordPressie czy WooCommerce. Dla aktualnych sklepów WooCommerce rekomenduje MySQL 8.0 lub wyższe albo MariaDB 10.6 lub wyższe, działające na silniku InnoDB. Starsze wersje działają jako próg, ale wersje rekomendowane dają lepszą wydajność i bezpieczeństwo.
Jak WooCommerce przechowuje zamówienia: HPOS
To największa zmiana w bazie WooCommerce w ostatnich latach. Dawniej każde zamówienie było przechowywane jako wpis WordPressa, ze wszystkimi szczegółami upakowanymi w wp_posts i wp_postmeta w postaci luźno ustrukturyzowanych par klucz-wartość. Ta tabela nigdy nie była projektowana pod zapytania o zamówienia, więc wraz ze wzrostem sklepu ekrany zamówień i raporty zwalniały.
Wysokowydajne przechowywanie zamówień (HPOS), wcześniej nazywane Custom Order Tables, zastępuje ten model. Zamówienia żyją teraz w dedykowanych, zindeksowanych tabelach zbudowanych pod e-commerce, w tym wc_orders, wc_order_addresses, wc_orders_meta i wc_order_operational_data. HPOS jest domyślne dla nowych instalacji od WooCommerce 8.2, wydanego w październiku 2023 roku, więc większość nowszych sklepów już z niego korzysta. Efektem są szybsze zapytania o zamówienia, bardziej responsywny panel i lepsza skalowalność dla sklepów o dużym wolumenie.
Ustawienie sprawdzisz lub zmienisz w WooCommerce → Ustawienia → Zaawansowane → Funkcje, gdzie istnieją trzy opcje: wysokowydajne przechowywanie zamówień (rekomendowane), przechowywanie w tabelach wpisów WordPressa (legacy) oraz tryb zgodności, który utrzymuje oba w synchronizacji. Istniejące sklepy migrują, włączając tryb zgodności, pozwalając danym uzupełnić się w tle, a następnie ustawiając HPOS jako nadrzędne. Przed przełączeniem na działającym sklepie wykonaj kopię zapasową i przetestuj na staging.
Jest tu ważna konsekwencja dla integracji. Ponieważ przy HPOS dane zamówień nie znajdują się już w wp_postmeta, każdy kod lub integracja odczytująca zamówienia bezpośrednim zapytaniem SQL do tabel wpisów przestanie działać. Wtyczki własne oraz połączenia z ERP lub CRM powinny korzystać z funkcji danych WooCommerce (CRUD) albo ze Store API i REST API, a nie z surowych zapytań. Jeśli Twój sklep łączy się z systemami zewnętrznymi, warto to potwierdzić przed przejściem na HPOS.
Jak zorganizowana jest reszta danych?
Zamówienia przeniosły się do HPOS, ale reszta WooCommerce nadal korzysta ze struktury WordPressa tam, gdzie ona pasuje. W szczególności produkty pozostają wpisami WordPressa: każdy produkt to wpis typu product w wp_posts, ze szczegółami w wp_postmeta i tabelą wc_product_meta_lookup dla szybkiego filtrowania i wyszukiwania. Poniższa tabela pokazuje główne grupy.
| Grupa danych | Główne tabele | Przeznaczenie |
|---|---|---|
| Zamówienia (HPOS) | wc_orders, wc_order_addresses, wc_orders_meta, wc_order_operational_data | Szczegóły zamówień, adresy, metadane i dane operacyjne |
| Produkty | wp_posts (post_type = product), wp_postmeta, wc_product_meta_lookup | Informacje o produktach, warianty i atrybuty do wyszukiwania |
| Tabele analityczne | wc_customer_lookup, wc_order_stats, wc_order_product_lookup | Szybkie raportowanie o klientach, zamówieniach i produktach |
| Podatki | wc_tax_rate_classes, wc_tax_rates, wc_tax_rate_locations | Stawki podatkowe, klasy i reguły lokalizacyjne |
| Wysyłka | wc_shipping_zones, wc_shipping_zone_methods | Strefy wysyłki, metody i koszty |
Taki podział danych pozwala WooCommerce uruchamiać wydajne zapytania: podsumowanie zamówienia, jego pozycje lub konkretne pole można pobrać bez skanowania dużych tabel ogólnego przeznaczenia.
Czy można użyć innej bazy danych z WooCommerce?
W praktyce MySQL i MariaDB to jedyne realne opcje i są wymienne. Poza nimi wsparcie szybko się kończy.
- PostgreSQL: istnieją projekty uruchamiające na nim WordPressa, ale są nieoficjalne i mogą wprowadzać niestabilność. Nieodpowiednie dla sklepu produkcyjnego.
- SQLite: odpowiednie dla bardzo małych instalacji WordPressa, ale ograniczenia współbieżności i wydajności wykluczają je w WooCommerce.
- NoSQL (np. MongoDB): niezgodne z modelem danych WordPressa bez zmian, które zepsułyby WooCommerce.
Duże organizacje czasem synchronizują bazę WooCommerce z systemem zewnętrznym, takim jak Oracle czy SQL Server, na potrzeby raportowania lub integracji, ale sam sklep nadal działa na MySQL lub MariaDB. Praktyczna rada: pozostań przy MySQL lub MariaDB i włóż wysiłek w konfigurację oraz buforowanie, zamiast zmieniać typ bazy.
Jak utrzymać bazę WooCommerce szybką?
Wydajność bazy decyduje o tym, jak sklep zachowuje się wraz ze wzrostem. Większość przypadków pokrywa kilka działań.
- Używaj HPOS. W każdym sklepie z dużą liczbą zamówień dedykowane tabele zamówień to największy pojedynczy zysk strukturalny.
- Regularnie sprzątaj. Ogranicz rewizje wpisów, czyść wygasłe transienty i usuwaj porzucone koszyki oraz stare sesje, które po cichu rozdmuchują bazę.
- Indeksuj pod realne zapytania. WooCommerce tworzy niezbędne indeksy; własne wzorce wyszukiwania mogą wymagać kolejnych, ale unikaj nadmiernego indeksowania, które spowalnia zapisy.
- Dodaj buforowanie obiektów. Redis lub jego otwartoźródłowy fork Valkey trzyma często używane dane w pamięci i zdejmuje obciążenie z bazy.
- Dostrój serwer. Dobierz rozmiar buffer poola InnoDB, by gorące tabele mieściły się w pamięci, a przy dużych sklepach dodaj repliki odczytu, aby raportowanie nie konkurowało z finalizacją zakupu.
Sharding bazy WooCommerce to działanie zaawansowane i rzadko potrzebne; niemal we wszystkich sklepach problem rozwiązują najpierw HPOS, buforowanie, indeksowanie i odpowiednio dobrany serwer.
Typowe problemy z bazą WooCommerce
Kilka problemów powraca, a wszystkim łatwiej zapobiec niż naprawiać je pod presją.
- Wolne zapytania: częste przy dużych katalogach lub długiej historii zamówień. Monitoruj zapytania, naprawiaj lub zastępuj nieefektywne (często we wtyczkach zewnętrznych) i dodawaj indeksy dla częstych wyszukiwań.
- Rozrost bazy: rewizje, transienty i porzucone koszyki kumulują się z czasem, spowalniając kopie zapasowe i zapytania. Czyść je według harmonogramu.
- Limity połączeń: błędy „too many connections” w szczytach, zwłaszcza na hostingu współdzielonym. Pomagają buforowanie obiektów, lepszy hosting i uporządkowane wtyczki.
- Uszkodzenie danych: po awarii lub błędnej aktualizacji. Przywróć z aktualnej kopii zapasowej albo użyj narzędzi naprawczych MySQL i WordPressa dla drobnych przypadków.
Dobrze prowadzona baza jest niewidoczna: klienci po prostu doświadczają szybkiego, niezawodnego sklepu. Przy złożonych platformach WooCommerce o dużym ruchu to zwykle na bazie wygrywa się lub przegrywa skalowanie, i jest ona dużą częścią naszej pracy przy WooCommerce, wydajności i B2B e-commerce, w tym migracji do HPOS i integracji wokół niej. Jeśli Twój sklep zwalnia wraz ze wzrostem, baza jest pierwszym miejscem, w które zaglądamy.
Najczęstsze pytania
Jakiej bazy danych używa WooCommerce?
WooCommerce używa MySQL lub zgodnego odpowiednika MariaDB, czyli tej samej relacyjnej bazy, na której działa WordPress. WooCommerce dodaje własne tabele, a w nowoczesnych wersjach przechowuje zamówienia w dedykowanych tabelach HPOS zamiast w dawnych tabelach wpisów.
WooCommerce używa MySQL czy MariaDB?
Oba działają. MySQL jest domyślne; MariaDB to zgodny fork, którego wiele hostingów używa jako zamiennika drop-in. WooCommerce rekomenduje MySQL 8.0 lub wyższe albo MariaDB 10.6 lub wyższe.
Czym jest HPOS w WooCommerce?
Wysokowydajne przechowywanie zamówień zapisuje zamówienia w dedykowanych tabelach bazy, takich jak wc_orders, zamiast w starszych tabelach wp_posts i wp_postmeta. Jest domyślne dla nowych sklepów od WooCommerce 8.2 (październik 2023) i poprawia szybkość zapytań o zamówienia, wydajność panelu oraz skalowalność.
Gdzie w bazie przechowywane są zamówienia WooCommerce?
W nowoczesnym WooCommerce z HPOS zamówienia żyją w dedykowanych tabelach, takich jak wc_orders, wc_order_addresses i wc_orders_meta. W starszych sklepach lub w trybie legacy są przechowywane jako wpisy w wp_posts z metadanymi w wp_postmeta. Produkty w obu przypadkach pozostają wpisami.
Czy WooCommerce może używać PostgreSQL lub MongoDB?
W praktyce nie. WooCommerce i WordPress są zbudowane pod MySQL i MariaDB. PostgreSQL jest niewspierane i niestabilne, a bazy NoSQL, takie jak MongoDB, są niezgodne bez zmian, które zepsułyby platformę. Duże sklepy czasem synchronizują dane z systemami zewnętrznymi do raportowania, ale sam sklep działa na MySQL lub MariaDB.



