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 13:00 | Bezpečnostní upozornění

    Správa služeb hlavního města Prahy se potýká s následky kyberútoku. Hackerská skupina začala zveřejňovat na internetu některé z ukradených materiálů a vyzvala organizaci k vyjednávání. Ta zatím podrobnosti k případu sdělovat nechce. Případem se zabývá policie i Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB).

    Ladislav Hagara | Komentářů: 0
    dnes 12:33 | Zajímavý software

    OCCT je oficiálně k dispozici na Linuxu (YouTube). Jedná se o proprietární software pro zátěžové testování a monitorování hardwaru.

    Ladislav Hagara | Komentářů: 1
    dnes 02:44 | IT novinky Ladislav Hagara | Komentářů: 0
    včera 17:55 | Nová verze

    Canonical vydal Ubuntu 25.04 Plucky Puffin. Přehled novinek v poznámkách k vydání. Jedná se o průběžné vydání s podporou 9 měsíců, tj. do ledna 2026.

    Ladislav Hagara | Komentářů: 0
    včera 14:11 | Nová verze

    Desktopové prostředí LXQt (Lightweight Qt Desktop Environment, Wikipedie) vzniklé sloučením projektů Razor-qt a LXDE bylo vydáno ve verzi 2.2.0. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 14:00 | Nová verze

    Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 25.04. Přehled novinek i s náhledy a videi v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    včera 11:55 | Zajímavý článek

    Nová čísla časopisů od nakladatelství Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 152 (pdf) a Hello World 26 (pdf).

    Ladislav Hagara | Komentářů: 0
    včera 03:55 | Pozvánky

    Zajímá vás Open Build Service (OBS) a vývoj linuxového jádra pro IBM Mainframe? V rámci Informatických večerů na FIT ČVUT v Praze proběhne v pondělí 28. dubna přednáška Linux on Z Development s podtitulem „From packaging in the openSUSE Build Service until Linux Kernel Development at IBM“. Přednáška proběhne v anglickém jazyce. Vstup je zdarma a bez předchozí registrace.

    Ladislav Hagara | Komentářů: 0
    včera 03:11 | Nová verze

    Vyšla nová verze XMPP (Jabber) klienta Dino. Mezi novinky patří vylepšený přenos souborů (XEP-0447: Stateless file sharing), přepracované dialogy a další. Vyzkoušet lze i na (linuxových) telefonech.

    sonicpp | Komentářů: 0
    včera 01:11 | Nová verze

    Vyšla nová verze XMPP (Jabber) klienta Gajim, která přidává podporu nového způsobu synchronizace informací o přečtení zpráv (XEP-0490: Message Displayed Synchronization jako nástupce XEP-0333: Displayed Markers), dále centrální stránku pro přehled všech aktivit (Activity feed) nebo vylepšení přepínání mezi více účty. Přehled dalších změn je k dispozici na oficiálních stránkách.

    sonicpp | Komentářů: 0
    Jaký filesystém primárně používáte?
     (58%)
     (1%)
     (11%)
     (20%)
     (4%)
     (1%)
     (2%)
     (0%)
     (1%)
     (2%)
    Celkem 360 hlasů
     Komentářů: 18, poslední včera 12:41
    Rozcestník

    Dotaz: MySQL a AI

    13.3.2014 13:37 LuRy | skóre: 12
    MySQL a AI
    Přečteno: 419×
    Zdravim, zajimalo by me co se stane kdyz dojdou(pretecou) hodnoty int(11) sloupce na kterym je primarni klic a autoincrement? Za predpokladu ze 90% z "preskocenych" id nebudou vubec existovat? Mam totiz tabulku do ktery zapisuju data tak ze 3 sloupce maji unikatni klic a pri vlozeni duplicitniho radku na zaklade tohoto uniq klice odchatavam vyjimku. Nicmene zpusobuje to to ze se preskakuji id.

    Diky za odpovedi

    Odpovědi

    Tarmaq avatar 13.3.2014 15:34 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: MySQL a AI
    Spadne ti to, Machale..
    Don't panic!
    13.3.2014 16:06 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: MySQL a AI
    Si to zkus, už nevložíš.
    mysql> SELECT @@SESSION.sql_mode;
    +----------------------------------------------------------------+
    | @@SESSION.sql_mode                                             |
    +----------------------------------------------------------------+
    | STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
    +----------------------------------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> CREATE TABLE tfull (
        ->      id INT NOT NULL AUTO_INCREMENT,
        ->      PRIMARY KEY (id)
        -> ) ENGINE=InnoDB AUTO_INCREMENT = 2147483647;
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> INSERT INTO tfull VALUES();
    Query OK, 1 row affected (0.00 sec)
    
    mysql> INSERT INTO tfull VALUES();
    ERROR 1062 (23000): Duplicate entry '2147483647' for key 'PRIMARY'
    mysql> DROP TABLE tfull;
    Query OK, 0 rows affected (0.01 sec)
    
    mysql>
    
    Ale řekl bych, že chyba může být i jiného typu...
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    13.3.2014 16:12 blondak | skóre: 36 | blog: Blondak | Čáslav
    Rozbalit Rozbalit vše Re: MySQL a AI
    ale řešení je naštěstí nasnadě:
    MariaDB [test]> CREATE TABLE tfull (
        ->       id INT NOT NULL AUTO_INCREMENT,
        ->       PRIMARY KEY (id)
        ->  ) ENGINE=InnoDB AUTO_INCREMENT = 2147483647;
    Query OK, 0 rows affected (0.06 sec)
    
    MariaDB [test]> INSERT INTO tfull VALUES();
    Query OK, 1 row affected (0.06 sec)
    
    MariaDB [test]> INSERT INTO tfull VALUES();
    ERROR 167 (22003): Out of range value for column 'id' at row 1
    MariaDB [test]> alter table tfull modify id BIGINT;
    Query OK, 1 row affected (0.06 sec)
    Records: 1  Duplicates: 0  Warnings: 0
    
    MariaDB [test]> INSERT INTO tfull VALUES();
    Query OK, 1 row affected (0.05 sec)
    
    MariaDB [test]> DROP TABLE tfull;
    Query OK, 0 rows affected (0.06 sec)
    
    Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
    13.3.2014 18:39 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: MySQL a AI

    Měl jsi si skusit ten insert provést 2×, pak by jsi si zjistil, že jsi problém nevyřešil, jen jsi vytvořil jiný (na to přijdeš hned, takže ho neodhalím ;-) ).

    A když už jsme u MySQL(MariaDB) a zvolili jsme na začátku INT a ne BIGINT, tak možná je lepší postup viz níže, protože (teoreticky) 2× natáhneme čas dokud nám stačí 32 bit id a tabulka je výrazně menší rychlejší a nepotřebuje tolik paměti (pokud interval po naplnění byl měsíc, tak to nemá význam, ale pokud třeba tři roky, tak je to dost zásadní).
    Já bych postupoval v tomto případě z mezikrokem takto:

    mysql> CREATE TABLE tfull (
        ->   id INT NOT NULL AUTO_INCREMENT,
        ->   PRIMARY KEY (id)
        -> ) ENGINE=InnoDB AUTO_INCREMENT = 2147483647;
    Query OK, 0 rows affected (0.02 sec)
    
    mysql> INSERT INTO tfull VALUES();
    Query OK, 1 row affected (0.02 sec)
    
    mysql> INSERT INTO tfull VALUES();
    ERROR 1062 (23000): Duplicate entry '2147483647' for key 'PRIMARY'
    mysql> ALTER TABLE tfull MODIFY id INT UNSIGNED auto_increment;
    Query OK, 1 row affected (0.03 sec)
    Records: 1  Duplicates: 0  Warnings: 0
    
    mysql> INSERT INTO tfull VALUES();
    Query OK, 1 row affected (0.01 sec)
    
    mysql> INSERT INTO tfull VALUES();
    Query OK, 1 row affected (0.02 sec)
    
    mysql> ALTER TABLE tfull AUTO_INCREMENT = 4294967295;
    Query OK, 3 rows affected (0.01 sec)
    Records: 3  Duplicates: 0  Warnings: 0
    
    mysql> INSERT INTO tfull VALUES();
    Query OK, 1 row affected (0.02 sec)
    
    mysql> INSERT INTO tfull VALUES();
    ERROR 1062 (23000): Duplicate entry '4294967295' for key 'PRIMARY'
    mysql> ALTER TABLE tfull MODIFY id BIGINT auto_increment;
    Query OK, 4 rows affected (0.02 sec)
    Records: 4  Duplicates: 0  Warnings: 0
    
    mysql> INSERT INTO tfull VALUES();
    Query OK, 1 row affected (0.01 sec)
    
    mysql> INSERT INTO tfull VALUES();
    Query OK, 1 row affected (0.02 sec)
    
    mysql> SELECT id FROM tfull;
    +------------+
    | id         |
    +------------+
    | 2147483647 |
    | 2147483648 |
    | 2147483649 |
    | 4294967295 |
    | 4294967296 |
    | 4294967297 |
    +------------+
    6 rows in set (0.00 sec)
    
    mysql> DROP TABLE tfull;
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> 
    

    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    14.3.2014 08:34 blondak | skóre: 36 | blog: Blondak | Čáslav
    Rozbalit Rozbalit vše Re: MySQL a AI
    Njn, zapomenutý AUTO_INCREMENT a když jsme u toho, tak lze to UNSIGNED použít i u BIGINT ;)
    Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
    14.3.2014 10:35 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: MySQL a AI

    Při milionu insertů za sekundu bude třeba 300tisíc let prp dosažení 9223372036854775807 (BIGINT max.).

    A případné zpracování takové hodnoty/typu (BIGINT UNSIGNED) způsobuje jen (drobné) problémy ve většině jazyků a i v samotném MySQL se už musí s tímto číslem pracovat s přetypováním (implicitní konverze čísel, zjednodušeně funguje jen do rozsahu BIGINT).

    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†

    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.