Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 14 su 14
  1. #11
    Quote Originariamente inviata da mydb Visualizza il messaggio
    Ciao,

    Mi hai incuriosito.

    Puoi spiegarmi cosa succede?
    Non ne ho idea, non sono una di quelle 100 persone in tutto il mondo
    Se cerchi nella documentazione c'è una sintassi precisa da rispettare se vuoi usare LOCK TABLES con InnoDB, dovresti farlo con una console, mentre con un'altra console guardi nel performance_schema quali lock vengono presi, e magari tra un'istruzione e l'altra provi a fare qualcosa con una terza console, per vedere come si comporta.
    Ma è più semplice non usarlo!


    Quote Originariamente inviata da brancomat Visualizza il messaggio
    Nel caso 1. usando IS_FREE+GET_LOCK la durata è 0,1 secondi invece di 5,2. Quindi ci guadagno, e tanto.
    E allora perché usi 5? Usa 0
    STK/Unit: Unit Test framework per MariaDB
    http://stk.wikidot.com/stk-unit

  2. #12
    Comunque nel caso che dici tu non aspetteresti mai 5 secondi: se la transazione dura 0.2 secondi, aspetti 0.2 secondi. 5 è il massimo. Io metterei 2, se metti 0 GET_LOCK non aspetta nulla e restituisce subito 0. In qualsiasi caso, is_free_lock non ti aiuta
    STK/Unit: Unit Test framework per MariaDB
    http://stk.wikidot.com/stk-unit

  3. #13
    Utente bannato
    Registrato dal
    Jul 2013
    Messaggi
    290
    Ho provato, ma non riesco a cambiare il livello di isolamente (nota: sto usando l'utente ROOT)

    codice:
    MariaDB [konsorzio]> select @@autocommit;
    +--------------+
    | @@autocommit |
    +--------------+
    |            1 |
    +--------------+
    1 row in set (0.00 sec)
    
    MariaDB [konsorzio]> SELECT @@GLOBAL.tx_isolation, @@tx_isolation;
    +-----------------------+-----------------+
    | @@GLOBAL.tx_isolation | @@tx_isolation  |
    +-----------------------+-----------------+
    | REPEATABLE-READ       | REPEATABLE-READ |
    +-----------------------+-----------------+
    1 row in set (0.00 sec)
    
    MariaDB [konsorzio]> set transaction isolation level serializable;
    Query OK, 0 rows affected (0.00 sec)
    
    MariaDB [konsorzio]> SELECT @@GLOBAL.tx_isolation, @@tx_isolation;
    +-----------------------+-----------------+
    | @@GLOBAL.tx_isolation | @@tx_isolation  |
    +-----------------------+-----------------+
    | REPEATABLE-READ       | REPEATABLE-READ |
    +-----------------------+-----------------+
    1 row in set (0.00 sec)
    Qui provo a impostare i parametri ma... non cambiano!
    
    MariaDB [konsorzio]> set autocommit=0;
    Query OK, 0 rows affected (0.00 sec)
    
    MariaDB [konsorzio]> set transaction isolation level serializable;
    Query OK, 0 rows affected (0.00 sec)
    
    MariaDB [konsorzio]> SELECT @@GLOBAL.tx_isolation, @@tx_isolation;
    +-----------------------+-----------------+
    | @@GLOBAL.tx_isolation | @@tx_isolation  |
    +-----------------------+-----------------+
    | REPEATABLE-READ       | REPEATABLE-READ |
    +-----------------------+-----------------+
    1 row in set (0.00 sec)
    
    MariaDB [konsorzio]>
    Ultima modifica di brancomat; 05-01-2014 a 17:48

  4. #14
    Ciao, queste variabili devi cambiarle a livello di sessione (sia per non influenzare le altre sessioni, sia perché la tua applicazione non dovrebbe usare root). Ma è colpa mia, ho scritto io le istruzioni che dovevi eseguire. Ti scrivo quelle giuste, con la dimostrazione che funziona:

    codice:
    MariaDB [(none)]> SELECT @@session.autocommit, @@session.tx_isolation;
    +----------------------+------------------------+
    | @@session.autocommit | @@session.tx_isolation |
    +----------------------+------------------------+
    |                    1 | REPEATABLE-READ        |
    +----------------------+------------------------+
    1 row in set (0.00 sec)
    
    MariaDB [(none)]> SET @@session.autocommit = 0;
    Query OK, 0 rows affected (0.00 sec)
    
    MariaDB [(none)]> SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
    Query OK, 0 rows affected (0.00 sec)
    
    MariaDB [(none)]> SELECT @@session.autocommit, @@session.tx_isolation;
    +----------------------+------------------------+
    | @@session.autocommit | @@session.tx_isolation |
    +----------------------+------------------------+
    |                    0 | SERIALIZABLE           |
    +----------------------+------------------------+
    1 row in set (0.00 sec)
    PS, anche tu usi MariaDB? Bene!
    STK/Unit: Unit Test framework per MariaDB
    http://stk.wikidot.com/stk-unit

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.