Co toto znamená a ani přes phpmyadmin nejde přihlásit
User 'hackermanie' has exceeded the 'max_connections_per_hour' resource (current value: 3600)
Překročil jsi maximální počet spojení s databází za hodinu. Počkej hodinku a zkus to znovu.
Většinou za to mohou špatně napsané redakční systémy.
díky a nešel by ten limit prosím zrušit?bude mě to hodně omezovat
Je to ochrana proti přetížení databáze. Můžeš ji zkusit otvírat persistentně, počet pokusů o její otevření se výrazně sníží.
Proč ji vlastně otvíráš a zavíráš častěji než 1x za sekundu? Nemáš náhodou chybu ve skriptech? Jsou i takoví tvůrci, kteří ji otvírají kvůli každému dotazu zvlášť.
Pokud se jedná o databázi na hackermanie.wz.cz, tak bych se přikláněl ke špatně navržené aplikaci.
Při tom množství přístupu, které tam vidím, není možné za hodinu normálně překročit povolený počet spojení.
A když se podívám na stránky a do zdrojáku, tak moje teorie se potvrzuje. Proč máš na stránce více bloků s BODY? Správná syntaxe povoluje pouze jeden výskyt tagu BODY. Dle mého si zahráváš s include, ale jaksi jsi ještě nepochopil jeho funkčnost. Co si pak myslet o práci s databázi?
skusím to nějak omezit ale stejně se mi to nezdá že bych spotřeboval 3600 dotazů
Ne dotazů, ale počet otevření databáze. Během jednoho otevření můžeš samozřejmě poslat víc dotazů. Zase to nesmíš přehnat, protože počet dotazů za hodinu je také limitován.
Pokud potřebuješ často manipulovat s daty (zejména hodně často číst), zvaž použití jiné databáze, než MySQL.
postegsql ani PostgreSQL tady není, ale můžeš zkusit SQLite (pokud potřebuješ jazyk SQL) nebo GDBM (pokud potřebuješ rychlost a stačí ti key->value store).
mě by se asi hodil ten sqlite kde se aktivuje?
SQLite je aktivní. Stačí ho jen použít. Je skoro stejně rychlý jako MySQL. Zápis je trochu pomalejší, ale 1000 insertů/s by snad mohlo stačit.
díky a používá se na to phpmyadmin? nebo něco jiného
Zkus Adminer.
Právě se mi do SQLite na WZ podařilo natlačit 160000 záznamů/s, takže je to docela svižná databáze - vychází mi pro zápis asi 20x rychlejší, než MySQL. Ovšem záleží to na použité optimalizaci přístupů. Pro SQLite jsem použil transakci, kterou MyISAM neumí.
Tak jsem si chtěl zase jednou vyzkoušet MySQL na WZ. Když jsem před chvílí uváděl vysoké rychlosti MySQL, tak jsem si nevšiml, že mé SQL dotazy jsou chybné a že se mi neprovádějí. Už jsem si je spravil a zjistil jsem velmi zajímavé hodnoty:
- zápis do MySQL - 130 záznamů/s
- čtení z MySQL - 590 záznamů/s
Je to skutečnost nebo mám jen chybně skript? Pro srovnání jsem udělal ve stejnou denní dobu na WZ ještě jiný test:
- zápis do SQLite - 75000 záznamů/s
- čtení z SQLite - 46000 záznamů/s
- zápis do GDBM - 88000 záznamů/s
- čtení z GDBM - 220000 záznamů/s
Navíc jsem při vytváření tabulky v MySQL jasně specifikoval, že chci InnoDB. Místo toho se mi vytvořila tabulka MyISAM.
Databáze MySQL je z mého pohledu na WZ zcela diskvalifikována pro svou nepoužitelnost. Chápu, že redakční systémy většinou jiné databáze neznají. Tímto příspěvkem jsem chtěl ukázat i další možnosti.
Poznámka na konec: Všechny testy jsem se snažil dělat šetrně tak, abych servery WZ příliš nezatížil.
Pokud je mi známo, tak na WZ nelze vytvářet InnoDB tabulky. Je povolen pouze MyISAM tabulky. Nevím důvod, ale mám za to, že InnoDB více zatěžuje server nebo má větší režii než MyISAM.
Databázové MySQL servery na WZ jsou diskvalifikované už nějaké ty roky. Zatím nedošlo k žádnému solidnímu upgradu na silné železo, které by na nějakou chvíli ustálo ten tlak. Takže se musí všichni spokojit s aktuálním stavem, kdy server jede permanentně na plné obrátky a nestihne tak někdy obsloužit některé požadavky.
Alternativou mohou být další databázové knihovny, které uvádíš. U nich lze očekávat, že budou rychlé, protože svým způsobem mají vlastní režii nezávislou na ostatních. Zátěž zde podstatě představuje pouze PHP interpret a rychlost zápisu/čtení z disku.
Známé velké aplikace by měly umět obsluhovat i jiné databázové zdroje. Při instalaci se u některých zobrazuje výběr. Nehledě na to, že velké projekty nebo frameworky by měly využívat abstraktní vrstvu.