{"id":17809,"date":"2026-08-31T20:55:52","date_gmt":"2026-08-31T18:55:52","guid":{"rendered":"https:\/\/dhosting.pl\/pomoc\/?post_type=manual_kb&#038;p=17809"},"modified":"2026-08-31T20:55:52","modified_gmt":"2026-08-31T18:55:52","slug":"limity-zasobow-mysql-polaczenia-czas-zapytan-i-blokady-tabel","status":"publish","type":"manual_kb","link":"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/limity-zasobow-mysql-polaczenia-czas-zapytan-i-blokady-tabel\/","title":{"rendered":"Limity zasob\u00f3w MySQL: po\u0142\u0105czenia, czas zapyta\u0144 i blokady tabel"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Limity zasob\u00f3w MySQL mog\u0105 powodowa\u0107 b\u0142\u0119dy, timeouty i spowolnienie strony. Taki problem mo\u017ce wyst\u0105pi\u0107 nawet wtedy, gdy u\u017cycie CPU i RAM serwera wygl\u0105da prawid\u0142owo.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_86 ez-toc-wrap-left counter-flat ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Spis tre\u015bci<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/limity-zasobow-mysql-polaczenia-czas-zapytan-i-blokady-tabel\/#Czym_roznia_sie_limity_MySQL_od_limitow_serwera\" >Czym r\u00f3\u017cni\u0105 si\u0119 limity MySQL od limit\u00f3w serwera<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/limity-zasobow-mysql-polaczenia-czas-zapytan-i-blokady-tabel\/#Maksymalna_liczba_polaczen_i_blad_1040\" >Maksymalna liczba po\u0142\u0105cze\u0144 i b\u0142\u0105d 1040<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/limity-zasobow-mysql-polaczenia-czas-zapytan-i-blokady-tabel\/#Czas_wykonywania_zapytan_i_timeout\" >Czas wykonywania zapyta\u0144 i timeout<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/limity-zasobow-mysql-polaczenia-czas-zapytan-i-blokady-tabel\/#Pojemnosc_bufora_MySQL\" >Pojemno\u015b\u0107 bufora MySQL<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/limity-zasobow-mysql-polaczenia-czas-zapytan-i-blokady-tabel\/#Blokady_tabel_i_oczekiwanie_na_dostep\" >Blokady tabel i oczekiwanie na dost\u0119p<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/limity-zasobow-mysql-polaczenia-czas-zapytan-i-blokady-tabel\/#Jak_polaczyc_objawy_z_wlasciwym_limitem\" >Jak po\u0142\u0105czy\u0107 objawy z w\u0142a\u015bciwym limitem<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Czym_roznia_sie_limity_MySQL_od_limitow_serwera\"><\/span>Czym r\u00f3\u017cni\u0105 si\u0119 limity MySQL od limit\u00f3w serwera<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p class=\"wp-block-paragraph\">Limity serwera dotycz\u0105 dost\u0119pnych zasob\u00f3w, takich jak procesor, pami\u0119\u0107 RAM lub przestrze\u0144 dyskowa. Limity MySQL dotycz\u0105 pracy samej bazy danych. Mog\u0105 zatrzyma\u0107 nowe po\u0142\u0105czenie albo op\u00f3\u017ani\u0107 zapytanie, mimo \u017ce serwer nie wykorzystuje ca\u0142ej dost\u0119pnej mocy.<\/p>\n<p class=\"wp-block-paragraph\">Przyk\u0142adowo, MySQL mo\u017ce osi\u0105gn\u0105\u0107 maksymaln\u0105 liczb\u0119 jednoczesnych po\u0142\u0105cze\u0144, gdy aplikacja otwiera wiele po\u0142\u0105cze\u0144 lub nie zamyka ich po zako\u0144czeniu pracy. W takiej sytuacji strona mo\u017ce zwraca\u0107 b\u0142\u0105d, chocia\u017c og\u00f3lne wykresy CPU i RAM nie wskazuj\u0105 przeci\u0105\u017cenia.<\/p>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Maksymalna_liczba_polaczen_i_blad_1040\"><\/span>Maksymalna liczba po\u0142\u0105cze\u0144 i b\u0142\u0105d 1040<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p class=\"wp-block-paragraph\">Limit <code class=\"\" data-line=\"\">max_connections<\/code> okre\u015bla, ile po\u0142\u0105cze\u0144 do MySQL mo\u017ce dzia\u0142a\u0107 jednocze\u015bnie. Po osi\u0105gni\u0119ciu tej warto\u015bci kolejne pr\u00f3by po\u0142\u0105czenia s\u0105 odrzucane. Typowym komunikatem jest <code class=\"\" data-line=\"\">ERROR 1040 (HY000): Too many connections<\/code>, czyli \u201ezbyt wiele po\u0142\u0105cze\u0144\u201d ERROR 1040 w MySQL.<\/p>\n<p class=\"wp-block-paragraph\">Objawy tego limitu mog\u0105 obejmowa\u0107 niedost\u0119pn\u0105 stron\u0119, b\u0142\u0119dy aplikacji oraz problemy z logowaniem do panelu lub sklepu. Nie musi temu towarzyszy\u0107 wysokie u\u017cycie CPU. Problem dotyczy liczby aktywnych sesji, a nie tylko mocy obliczeniowej.<\/p>\n<h3 class=\"wp-block-heading\">Jak sprawdzi\u0107 problem z po\u0142\u0105czeniami<\/h3>\n<ol class=\"wp-block-list\">\n<li>Sprawd\u017a, czy w logach aplikacji lub MySQL pojawia si\u0119 <code class=\"\" data-line=\"\">ERROR 1040<\/code> albo komunikat o przekroczeniu liczby po\u0142\u0105cze\u0144.<\/li>\n<li>Por\u00f3wnaj bie\u017c\u0105c\u0105 liczb\u0119 po\u0142\u0105cze\u0144 z limitem <code class=\"\" data-line=\"\">max_connections<\/code>.<\/li>\n<li>Sprawd\u017a, czy po\u0142\u0105czenia pozostaj\u0105 aktywne d\u0142u\u017cej, ni\u017c wymaga tego aplikacja. Pomocne s\u0105 dane o liczbie po\u0142\u0105cze\u0144 i ich czasie trwania.<\/li>\n<li>Ustal, czy wzrost liczby po\u0142\u0105cze\u0144 wyst\u0119puje podczas konkretnego zadania, na przyk\u0142ad wi\u0119kszego ruchu albo operacji wykonywanej przez aplikacj\u0119.<\/li>\n<\/ol>\n<p class=\"wp-block-paragraph\">Samo zwi\u0119kszenie limitu nie zawsze rozwi\u0105zuje problem. Wi\u0119ksza liczba po\u0142\u0105cze\u0144 mo\u017ce zwi\u0119kszy\u0107 obci\u0105\u017cenie MySQL. Najpierw warto sprawdzi\u0107 spos\u00f3b zarz\u0105dzania po\u0142\u0105czeniami oraz zapytania wykonywane przez aplikacj\u0119. Zestawienia instancji MySQL s\u0142u\u017c\u0105 do obserwowania mi\u0119dzy innymi liczby po\u0142\u0105cze\u0144 i obci\u0105\u017cenia bazy <a href=\"https:\/\/docs.percona.com\/percona-monitoring-and-management\/2\/details\/dashboards\/dashboard-mysql-instance-summary.html?utm_source=openai\" target=\"_blank\" rel=\"noopener\">MySQL Instance Summary<\/a>.<\/p>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Czas_wykonywania_zapytan_i_timeout\"><\/span>Czas wykonywania zapyta\u0144 i timeout<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p class=\"wp-block-paragraph\">Czas zapytania to czas potrzebny MySQL na wykonanie operacji i zwr\u00f3cenie wyniku. Gdy zapytanie trwa zbyt d\u0142ugo, aplikacja mo\u017ce czeka\u0107 na odpowied\u017a, a po przekroczeniu ustalonego czasu zako\u0144czy\u0107 pr\u00f3b\u0119 komunikatem timeout. Timeout nie musi oznacza\u0107 braku zasob\u00f3w serwera. Mo\u017ce wynika\u0107 z oczekiwania na blokad\u0119, du\u017cego zakresu danych albo innych aktywnych zapyta\u0144 MySQL Timeout Explained.<\/p>\n<h3 class=\"wp-block-heading\">Objawy i diagnostyka<\/h3>\n<ul class=\"wp-block-list\">\n<li>pojedyncze podstrony \u0142aduj\u0105 si\u0119 znacznie d\u0142u\u017cej ni\u017c pozosta\u0142e,<\/li>\n<li>operacje w panelu lub WooCommerce ko\u0144cz\u0105 si\u0119 timeoutem,<\/li>\n<li>liczba aktywnych po\u0142\u0105cze\u0144 ro\u015bnie, poniewa\u017c ka\u017cde z nich czeka na zako\u0144czenie zapytania,<\/li>\n<li>CPU mo\u017ce pozostawa\u0107 na umiarkowanym poziomie, gdy MySQL g\u0142\u00f3wnie oczekuje.<\/li>\n<\/ul>\n<p class=\"wp-block-paragraph\">Por\u00f3wnaj czas wykonywania zapyta\u0144 i moment wyst\u0119powania op\u00f3\u017anie\u0144. Sprawd\u017a, czy problem dotyczy jednego zapytania, jednej funkcji aplikacji czy ca\u0142ej bazy. Nie zwi\u0119kszaj czasu oczekiwania jako pierwszego dzia\u0142ania. D\u0142u\u017cszy timeout mo\u017ce tylko sprawi\u0107, \u017ce po\u0142\u0105czenia b\u0119d\u0105 zaj\u0119te przez d\u0142u\u017cszy czas.<\/p>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Pojemnosc_bufora_MySQL\"><\/span>Pojemno\u015b\u0107 bufora MySQL<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p class=\"wp-block-paragraph\">Bufor to obszar pami\u0119ci u\u017cywany przez MySQL do przechowywania danych lub wynik\u00f3w potrzebnych podczas pracy. Gdy pojemno\u015b\u0107 bufora jest niewystarczaj\u0105ca dla wykonywanych operacji, baza musi cz\u0119\u015bciej odczytywa\u0107 dane z dysku. Strona mo\u017ce wtedy dzia\u0142a\u0107 wolno mimo prawid\u0142owego u\u017cycia CPU.<\/p>\n<p class=\"wp-block-paragraph\">W diagnostyce por\u00f3wnaj rozmiar bufora z charakterem zapyta\u0144 i obserwuj, czy wzrost ruchu powoduje wi\u0119cej operacji odczytu oraz d\u0142u\u017cszy czas odpowiedzi. Zmiana ustawie\u0144 bufora wp\u0142ywa na zu\u017cycie pami\u0119ci, dlatego przed zmian\u0105 sprawd\u017a dost\u0119pne zasoby i wykonaj test po zmianie. Dane o pracy instancji i buforach mo\u017cna analizowa\u0107 w zestawieniu MySQL Instance Summary <a href=\"https:\/\/docs.percona.com\/percona-monitoring-and-management\/2\/details\/dashboards\/dashboard-mysql-instance-summary.html?utm_source=openai\" target=\"_blank\" rel=\"noopener\">dokumentacja Percona Monitoring and Management<\/a>.<\/p>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Blokady_tabel_i_oczekiwanie_na_dostep\"><\/span>Blokady tabel i oczekiwanie na dost\u0119p<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p class=\"wp-block-paragraph\">Blokada tabeli sprawia, \u017ce jedno zapytanie musi czeka\u0107, a\u017c inne zako\u0144czy operacj\u0119 na tej samej tabeli. W tym czasie CPU mo\u017ce nie by\u0107 zaj\u0119ty, poniewa\u017c MySQL oczekuje na zwolnienie dost\u0119pu. Dla u\u017cytkownika objawem jest wolne \u0142adowanie strony, zawieszanie zapisu albo timeout.<\/p>\n<p class=\"wp-block-paragraph\">Sprawd\u017a, czy op\u00f3\u017anienie pojawia si\u0119 podczas zapisu, aktualizacji lub usuwania danych. Nast\u0119pnie por\u00f3wnaj czas trwania zapyta\u0144 z informacjami o oczekiwaniu na blokad\u0119. Je\u017celi problem wyst\u0119puje tylko przy okre\u015blonej operacji, analizuj j\u0105 osobno zamiast zwi\u0119ksza\u0107 og\u00f3lne limity serwera.<\/p>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Jak_polaczyc_objawy_z_wlasciwym_limitem\"><\/span>Jak po\u0142\u0105czy\u0107 objawy z w\u0142a\u015bciwym limitem<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<figure class=\"wp-block-table\">\n<table>\n<thead>\n<tr>\n<th>Objaw<\/th>\n<th>Najbardziej prawdopodobny obszar<\/th>\n<th>Pierwszy krok<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>ERROR 1040 i odrzucane po\u0142\u0105czenia<\/td>\n<td>Maksymalna liczba po\u0142\u0105cze\u0144<\/td>\n<td>Sprawd\u017a <code class=\"\" data-line=\"\">max_connections<\/code> i liczb\u0119 aktywnych sesji.<\/td>\n<\/tr>\n<tr>\n<td>Timeout przy wybranej operacji<\/td>\n<td>D\u0142ugie zapytanie lub blokada<\/td>\n<td>Sprawd\u017a czas zapytania i oczekiwanie na dost\u0119p do tabeli.<\/td>\n<\/tr>\n<tr>\n<td>Sta\u0142e op\u00f3\u017anienia odczytu przy normalnym CPU<\/td>\n<td>Pojemno\u015b\u0107 bufora lub odczyt danych<\/td>\n<td>Por\u00f3wnaj prac\u0119 bufora z czasem odpowiedzi zapyta\u0144.<\/td>\n<\/tr>\n<tr>\n<td>Wolny zapis danych<\/td>\n<td>Blokada tabeli lub d\u0142ugie zapytanie<\/td>\n<td>Ustal, kt\u00f3re zapytanie blokuje operacj\u0119.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p class=\"wp-block-paragraph\">Najpierw okre\u015bl, czy problem dotyczy liczby po\u0142\u0105cze\u0144, czasu zapyta\u0144, pami\u0119ci bufora czy blokady. Dopiero potem zmieniaj konfiguracj\u0119. Przy zmianach wp\u0142ywaj\u0105cych na baz\u0119 wykonaj kopi\u0119 zapasow\u0105 i zachowaj mo\u017cliwo\u015b\u0107 cofni\u0119cia modyfikacji.<\/p>\n","protected":false},"author":6,"featured_media":10957,"parent":0,"menu_order":0,"template":"","format":"standard","manualknowledgebasecat":[3488,121,118,2143],"manual_kb_tag":[785,8022,964,8026,8028,380],"class_list":["post-17809","manual_kb","type-manual_kb","status-publish","format-standard","has-post-thumbnail","hentry","manualknowledgebasecat-inne-domeny","manualknowledgebasecat-inne","manualknowledgebasecat-pozostale","manualknowledgebasecat-inne-hosting","manual_kb_tag-baza-danych","manual_kb_tag-timeout","manual_kb_tag-limity-zasobow","manual_kb_tag-polaczenia-mysql","manual_kb_tag-blokady-tabel","manual_kb_tag-mysql"],"_links":{"self":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb\/17809","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb"}],"about":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/types\/manual_kb"}],"author":[{"embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/users\/6"}],"version-history":[{"count":3,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb\/17809\/revisions"}],"predecessor-version":[{"id":17810,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb\/17809\/revisions\/17810"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/media\/10957"}],"wp:attachment":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/media?parent=17809"}],"wp:term":[{"taxonomy":"manualknowledgebasecat","embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manualknowledgebasecat?post=17809"},{"taxonomy":"manual_kb_tag","embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb_tag?post=17809"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}