Diskuze: LIMIT v databázovém dotazu
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 9 zpráv z 9.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Po provedení prvního UPDATE by asi tabulka neměla být dál prohledávána a teoreticky by se mohlo něco ušetřit. Nepatří to však k dobrým zvykům. U krátkých tabulek je to jedno, u dlouhých by na daném sloupci měl být index a vlastně by to také mělo být jedno.
Díky, myslel jsem si to. Takže když to je primární klíč té samé tabulky nebo třeba cizí klíč, tak to dál prohledávat nebude.
Také jsem se mezitím dočetl, že používání LIMIT v UPDATE je v jistém ohledu hazard, protože pokud by tam těch položek víc, tak vůbec nevíme, která z nich bude updatována.
Mám takové tušení, že LIMIT v UPDATE je jen rozšířením MySQL, které ve standardu není.
Ještě se chci zeptat, když chci zjistit, jestli v DB existuje alespoň jeden záznam, předpokládám, že se to nedělá countem, ale selectnu si něco s limitem 1 a data pak nevyužiji. Je to tak?
já tedy nevím, co myslíš konkrétního, ale jestli se má něco updatovat a jedná se o konkrétní řádek, šel bych rovnou podmínkou ke konkrétnímu ID, bude tak změněn jen jeden záznam. Ale jestli se změna může týkat více řádků, tak je asi dobré změnit všechny řádky, kterých se to týká. A jestliže, se má změnit z více možnosti jen jedna, určitě bych je minimálně seřadil, třeba podle ID. Já používám v tabulkách vždy jako první sloupec s identifikací nastavenou AUTO_INCREMENT. Přijde mi to jako velká pomoc při práci s DB.
Většinou k dotazům tohoto typu není důvod. Buď ta data chci, anebo nechci, ale neptám se zbytečně, zda tam jsou. Z toho smrdí race condition.
count(*) se používá běžně, ale musí se s ním opatrně.
Křišťálová koule se mi ozvala: Proč vlastně nepoužiješ Observer?
Zobrazeno 9 zpráv z 9.
