Portál AbcLinuxu, 19. dubna 2024 02:54


Dotaz: Jak můžu obejít "stav" Locked v MySQL

27.3.2011 15:41 beginer666 | skóre: 9
Jak můžu obejít "stav" Locked v MySQL
Přečteno: 417×
Odpovědět | Admin
Zdravim, rád bych nějak vyřešil problém, který se mi stává při UPDATE jobu a to že nemůžu SELECT ze stejný tabulky.

Přitom z tý tabulky bych chtěl jenom číst a né ji nijak updatovat.

Zkoušel jsem Low_priority a High_priority ale nejspíš je to tím Locked

Děkuji

+------+------------+-----------+-------+---------+------+----------------+------------------------------------------------------------------------------------------------------+
| Id   | User       | Host      | db    | Command | Time | State          | Info                                                                                                 |
+------+------------+-----------+-------+---------+------+----------------+------------------------------------------------------------------------------------------------------+
| 1747 | dbadmin | localhost | db | Query   |    0 | NULL           | SHOW PROCESSLIST                                                                                     |
| 1751 | dbadmin | localhost | db | Query   |   25 | Sorting result | update low_priority data1 set data1.rat_eu3 = ( (select r3.rat from r3 w |
| 1753 | dbadmin | localhost | db | Query   |   18 | Locked         | select high_priority * from data1 limit 3                                                            |
+------+------------+-----------+-------+---------+------+----------------+------------------------------------------------------------------------------------------------------+

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (beginer666 (tazatel))
27.3.2011 15:56 ghost
Rozbalit Rozbalit vše Re: Jak můžu obejít "stav" Locked v MySQL
Odpovědět | | Sbalit | Link | Blokovat | Admin
nepouzivat MyISAM - zamyka na urovni tabulek, kdezto InnoDB na urovni radku.
27.3.2011 16:02 beginer666 | skóre: 9
Rozbalit Rozbalit vše Re: Jak můžu obejít "stav" Locked v MySQL
že by to bylo takhle jednoduchý? Jdu to zkusit.

díky
27.3.2011 16:09 beginer666 | skóre: 9
Rozbalit Rozbalit vše Re: Jak můžu obejít "stav" Locked v MySQL
akorát že mi to píše chybu že nemůžu na tuhle innodb používat fulltext /:

ALTER TABLE data1 ADD FULLTEXT vyhledavani(mesto);

ERROR 1214 (HY000): The used table type doesn't support FULLTEXT indexes

co stim?
Řešení 1× (beginer666 (tazatel))
27.3.2011 16:14 ghost
Rozbalit Rozbalit vše Re: Jak můžu obejít "stav" Locked v MySQL
bohuzel, InnoDB neumi fulltext :( Vyresit to muzes tak, ze mas tu tabulku (nebo alespon ty sloupce, kde pouzivas fulltext) vytvorenou 2x ... jednou v InnoDB a podruhe MyISAM. InnoDB je ta "ziva", pri manipulaci s ni pak trigrama updatujes tu MyISAM, ktera slouzi jen na hledani ...

Je to blby, ale rekl bych, ze lepsi nez zamykani tabulek.
27.3.2011 16:22 beginer666 | skóre: 9
Rozbalit Rozbalit vše Re: Jak můžu obejít "stav" Locked v MySQL
tak super , jeden problém se vyřeší druhým problémem, který už je řešitelnější,.

Neporadíš mi jakym commandem efektivně updavat tu druhou (MyISAM) z první když jsou obě 1:1 ?

díky
27.3.2011 16:39 ghost
Rozbalit Rozbalit vše Re: Jak můžu obejít "stav" Locked v MySQL
Idealne after trigger (po insert, update, delete) - http://dev.mysql.com/doc/refman/5.0/en/trigger-syntax.html

Pokud si netroufas na trigger v db, tak jej muzes "nasimulovat". Za predpokladu, ze pro kazdou entitu/tabulku (jak si to nazves je jedno) mas prave jeden bod (funkci) pro insert, update a delete. Do nich akorat pridas prislusnou operaci do vyhledavaci tabulky.

Pokud nemas jeden bod, tak nezbyde nic, nez pridat to do kazde funkce, ktera meni obsah tabulky.
27.3.2011 16:45 beginer666 | skóre: 9
Rozbalit Rozbalit vše Re: Jak můžu obejít "stav" Locked v MySQL
Tak to je pro mě vyšší dívčí ):
27.3.2011 17:22 razor | skóre: 33
Rozbalit Rozbalit vše Re: Jak můžu obejít "stav" Locked v MySQL
Zdar, fulltext nedělat pomocí mysql ale třeba pomocí sphinx. A jak je výše uvedeno, jako uložný engine používat innodb.
27.3.2011 17:49 beginer666 | skóre: 9
Rozbalit Rozbalit vše Re: Jak můžu obejít "stav" Locked v MySQL
A máš někde nějakej návod jak to zprovoznit. Co jsem tak koukal nic kloudnýho jsem nenašel - nebo to prostě nechápu. ):
27.3.2011 18:02 razor | skóre: 33
Rozbalit Rozbalit vše Re: Jak můžu obejít "stav" Locked v MySQL
no tak moc jsem nehledal, zkus třreba toto: http://komunitasweb.com/2009/03/sphinx-search-introduction/ nebo toto: http://www.ibm.com/developerworks/library/os-php-sphinxsearch/

Založit nové vláknoNahoru

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

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.