abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 18:33 | Bezpečnostní upozornění

Dětičky pod dozorem táty zkoušely hacknout tátův uzamčený počítač se Cinnamonem. Povedlo se jim to pouhým náhodným klikáním na virtuální klávesnici na obrazovce. Táta chybu nahlásil a je již opravena. Kliknutím na písmeno "ē" na virtuální klávesnici bylo možné shodit screensaver a tím obejít přihlašování.

Ladislav Hagara | Komentářů: 14
dnes 10:00 | Nová verze

Byla vydána nová stabilní verze 1.10.0 distribučního frameworku Flatpak (Wikipedie), tj. technologie umožňující distribuovat aplikace v podobě jednoho instalačního souboru na různé linuxové distribuce a jejich různá vydání. Přehled novinek na GitHubu. Zdůrazněn je nový efektivnější formát repozitáře. Řešena je také bezpečnostní chyba CVE-2021-21261. Aktuálně lze z Flathubu, tj. centrálního repozitáře pro Flatpaky, nainstalovat 1 031 aplikací.

Ladislav Hagara | Komentářů: 0
včera 10:00 | Komunita

Společnost PINE64 stojící za telefonem PinePhone, notebooky Pinebook a Pinebook Pro, IP kamerou PineCube, hodinkami PineTime, páječkou (pájecím perem) Pinecil, zdroji PinePower nebo RISC-V vývojovou deskou PineCone publikovala na svém blogu lednový souhrn novinek. Opět společně s videem (YouTube, LBRY, TILvids). Od 18. ledna bude možné objednat PinePhone s předinstalovaným Mobianem aneb Debianem pro mobilní zařízení.

Ladislav Hagara | Komentářů: 24
včera 09:00 | Nová verze

Byla vydána nová verze 3.6 svobodného notačního programu MuseScore (Wikipedie). Představení novinek také na YouTube. Zdůrazněn je nový font Leland. Jeho představení na YouTube.

Ladislav Hagara | Komentářů: 0
15.1. 18:44 | Zajímavý projekt

Fedora Magazine představil projekt Fedora Kinoite aneb Fedoru Silverblue s prostředím KDE Plasma. Fedora Silverblue je neměnný systém s atomickými aktualizacemi, tj. základní systém je distribuován jako celek, s prostředím GNOME.

Ladislav Hagara | Komentářů: 4
15.1. 10:00 | IT novinky

Projekty Elasticsearch a Kibana, doposud distribuované pod licencí Apache 2.0, přejdou na duální licencování pod Server-Side Public License (původně používanou pro MongoDB a neschválenou jako open-source organizací OSI) a vlastní source-available licencí. Změna vejde v platnost počínaje vydáním 7.11.

Fluttershy, yay! | Komentářů: 0
15.1. 09:00 | Komunita

Na Humble Bundle lze do neděle 17. ledna do 19:00 získat zdarma počítačovou hru Bomber Crew (YouTube, Wikipedie) běžící také v Linuxu.

Ladislav Hagara | Komentářů: 1
15.1. 08:00 | Nová verze

Minimalistická linuxová distribuce Alpine byla vydána v nové stabilní řadě 3.13. Novinkou jsou např. oficiální obrazy v cloudu (AWS EC2), vylepšené síťové nástroje nebo podpora PHP 8.0.

Fluttershy, yay! | Komentářů: 0
15.1. 07:00 | Bezpečnostní upozornění

Uživatelé Admineru verze 3.7.1 a starších mohli být 29. a 30. prosince napadeni. Útočníkovi se podařilo do souboru jush.js, který se do této verze ještě stahoval z adminer.org, vložit kód, který mu odesílal přihlašovací údaje. Pokud jste v tomto čase tuto více než 7 let starou verzi Admineru používali, tak změňte hesla databází, ke kterým jste se přihlašovali. Novější verze ovlivněné nejsou.

Ladislav Hagara | Komentářů: 2
15.1. 00:11 | Zajímavý článek

Ernie Smith píše o historii populárních routerů Linksys WRT54G, jejichž software byl založený na Linuxu, a proto posléze díky GNU GPL uvolněn jako open source, což vedlo k vývoji alternativního softwaru jako DD-WRT či OpenWrt a řadě dalších využití.

Fluttershy, yay! | Komentářů: 0
Jestliže používáte distribuci CentOS, kterou náhradu plánujete vzhledem k oznámenému ukončení vydávání?
 (30%)
 (3%)
 (2%)
 (23%)
 (0%)
 (2%)
 (40%)
Celkem 151 hlasů
 Komentářů: 3, poslední 10.1. 13:01
Rozcestník

Dotaz: MySQL - lze prohledat tabulku od konce?

1.12.2020 09:46 tom
MySQL - lze prohledat tabulku od konce?
Přečteno: 819×
Zdravim,

mam jednu velikou a narustajici InnoDB tabulku a potrebuju z ni vybirat jediny zaznam, ktery splnuje nejakou podminku a ma nejvyssi ID

Zkratka posledni zaznam s touto podminkou, jestli si rozumime

Ted to delam takhle:

SELECT id,x FROM tabulka WHERE x="neco" ORDER BY id DESC LIMIT 1

A tenhle dotaz trva dost dlouho. Tak me napada, ze MySQL asi vyhleda vsechny radky, kde x="neco", seradi je podle ID pozpatku a pak teprve vybere prvni radek, ktery me zajima

Dalo by se nejak udelat, aby to proste vyhledavalo rovnou od konce te databaze?

Diky

Řešení dotazu:


Odpovědi

Aleš Janda avatar 1.12.2020 09:58 Aleš Janda | skóre: 22 | blog: kýblův blog | Kralupy nad Vltavou
Rozbalit Rozbalit vše Re: MySQL - lze prohledat tabulku od konce?
Tabulka obecně nemá žádný začátek ani konec.

Asi nejlepší dotaz, co můžete zadat, je

SELECT max(id) FROM tabulka WHERE x="neco"

z čehož teda zase nedostanete to x, navíc nevím, jak moc to pomůže v rychlosti.
1.12.2020 10:02 okbobcz | skóre: 1
Rozbalit Rozbalit vše Re: MySQL - lze prohledat tabulku od konce?
Sestupný index by nepomohl https://mydbops.wordpress.com/2018/07/15/descending-index-in-mysql-8-0/

V Postgresu jsou indexy oboucestné (i když v té primární cestě jsou rychlejší). U MySQL nevím. To Vaše SQL je korektní - jde jen o to, aby se chytil index nad id.
1.12.2020 11:10 Peter Golis | skóre: 61 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: MySQL - lze prohledat tabulku od konce?
Pokiaľ chce človek zachovať sekvenčné ID, tak by nebolo rozumné využiť funkciu sekvencera? OracleDB na to malo priamo objekt sequencer.curval, sequencer.nextval. Samotné MySQL by malo mať voľbu pre číselný stĺpec ID "AUTO_INCREMENT PRIMARY KEY". Nevyriešilo by to problém systematicky?
Řešení 1× (frr)
1.12.2020 12:50 Vlado99 | skóre: 3
Rozbalit Rozbalit vše Re: MySQL - lze prohledat tabulku od konce?
SELECT id,x FROM tabulka WHERE id=(SELECT max(id) FROM tabulka WHERE x="něco")

Treba mať indexy nad id a nad x. Záznamy v tabuľke sú množina, nemajú "začiatok" ani "koniec".
10.1. 21:51 Filip Jirsák | skóre: 67 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: MySQL - lze prohledat tabulku od konce?
Slušný databázový stroj by měl odhalit, že tenhle příkaz je ekvivalentní tomu v dotazu a prováděcí plán by měl být v obou případech stejný. Ale zrovna v případě MySQL bych raději oba prováděcí plány porovnal, jestli se neliší a jeden z nich není opravdu výrazně lepší. Základ je ale samozřejmě mít v databázi správný index – pokud se musí dělat fullscan, žádné čarování s dotazy to nezlepší.
4.12.2020 19:39 tom
Rozbalit Rozbalit vše Re: MySQL - lze prohledat tabulku od konce?
Nemel jsem ted chvili cas se tomu venovat...

Kazdopadne dekuji za vasi pomoc!

Ale napadlo me, co kdybych udelal nejaky trigger, ktery by pri INSERTu pohlidal, jestli se x="neco" a kdyby jo, tak by to zapsal do nejake druhe/pomocne tabulky

Jenom nevim jednak jestli to jde, predpokladam, ze snad ano, a druhak jakou zatez to prinese, protoze se to vlastne bude spoustet pri kazdem zapisu do DB

Zkusim a uvidim
6.12.2020 20:11 okbobcz | skóre: 1
Rozbalit Rozbalit vše Re: MySQL - lze prohledat tabulku od konce?
To je takova rucni implementace online materializovaneho pohledu. Ma to spis smysl pro nejake vyrazne vetsi tabulky, protoze zpomaleni INSERTu bude znatelne. Navic se tam musi resit race conditions.
Josef Kufner avatar 11.12.2020 13:14 Josef Kufner | skóre: 69
Rozbalit Rozbalit vše Re: MySQL - lze prohledat tabulku od konce?
Přidej jeden index nad oba sloupečky (x, id) a nech si pomocí EXPLAIN vysvětlit, zda to pomohlo a kde přesně to dře.
Hello world ! Segmentation fault (core dumped)
15.12.2020 21:17 Filip Jirsák | skóre: 67 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: MySQL - lze prohledat tabulku od konce?
Tak me napada, ze MySQL asi vyhleda vsechny radky, kde x="neco", seradi je podle ID pozpatku a pak teprve vybere prvni radek, ktery me zajima
Takovéhle úvahy nedávají smysl. Databáze má optimalizátor dotazů (MySQL tedy zrovna ne nijak hvězdný), záleží a tom, zda daný dotaz správně rozklíčuje a umí ho zoptimalizovat. A hlavně jestli pro tu optimalizaci má prostředky – třeba správné indexy. Takže neřešte „aby to rovnou vyhledávalo od konce databáze“.

Jaký je počet záznamů splňujících x="neco"? Máte na tom x index? Nebo by bylo rychlejší hledat od nejvyšších id a hledat první, které splňuje podmínku na x? Jsou nějaké další podmínky platné pro to vyhledávání x? Třeba by se to dalo využít pro to vyhledávání.
10.1. 14:37 tom
Rozbalit Rozbalit vše Re: MySQL - lze prohledat tabulku od konce?
Sorry,

prestal jsem vlakno sledovat, protoze se nam podarilo ten problem vyresit/odsunout tim, ze jsme ten system presunuli na SSD

Nicmene ted jsem si konecne vsimnul, ze pisete:
Nebo by bylo rychlejší hledat od nejvyšších id a hledat první, které splňuje podmínku na x?
To by asi bylo idealnim resenim tohoto problemu (viz titulek). Jelikoz ID je nastavene na AUTO_INCREMENT.

Jak tedy hledat od nejvyssich id?

Dekuji
10.1. 18:28 Filip Jirsák | skóre: 67 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: MySQL - lze prohledat tabulku od konce?
To by asi bylo idealnim resenim tohoto problemu (viz titulek). Jelikoz ID je nastavene na AUTO_INCREMENT. Jak tedy hledat od nejvyssich id?
Vytvořit index, ve kterém bude jako první sloupec ID a jako další sloupce to, podle čeho děláte WHERE.
10.1. 19:57 tom
Rozbalit Rozbalit vše Re: MySQL - lze prohledat tabulku od konce?
Ja mam v hlave vazne brzdovou kapalinu

Ted teprve zacinam chapat i predchozi komentare

Diky!!
10.1. 21:56 Filip Jirsák | skóre: 67 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: MySQL - lze prohledat tabulku od konce?
Samozřejmě je pak potřeba ověřit, že se ten index používá. Případně jeho použití vynutit – pokud MySQL umí něco jako hinty. Protože se může stát, že si databáze bude myslet, že záznamů splňujících tu podmínku x="něco" bude málo, a že než na takový záznam dojde přes ten index podle ID, bude rychlejší použít buď jiný index (třeba pro samotné x) nebo projít celou tabulku.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.