Typ engine, který používají tabulky. Jak jsem se dočetl, MyISAM je netranskakční std MySQL engine, který je rychlý, INNO DB je transakční engine....
Co používáte? Co ostatní engine? Je to k něčemu? Nestaráte se? Nebylo by lepší se starat?
Nestarám se, používám MyISAM, v jiných údajně nefunguje fulltext... možná by bylo lepší se starat, ale zatím jsem si k tomu nenašel důvod....
Ja pouzivam klasiku, lec na dovce prostuduji MYSQL bichli od A-Z, a uz z predbeznych pohledu sem si rikal ze ostatni typy tables stoji za vyzkouseni
Trochu jsem pátral, tak innoDB třeba umí foreign key. Kdo jste nikdy nepoužili, dám příklad:
Tvoříte tabulku uzivatel a k ní tabulku prava. Zkusím příkladek pro stejně rychle chápající jako já:
create table uzivatel (
uzivatel_id int auto_increment primary key,
jmeno varchar(30),
heslo varhcar(33),
) type=innodb;
create table prava (
prava_id int auto_increment primary key,
uzivatel_id int,
FOREIGN KEY (uzivatel_id) REFERENCES uzivatel(uzivatel_id)
ON DELETE CASCADE
)
pak tvorite uživatele, k nim práva a pak uživatelel smažete a práva se smažou sama..
Dobrý ne?
Tohle, když jsem zjistil, že PostgreSQL umí a MySQL ne (v době, kdy jsem to zjišťoval, to neuměl (?), tak byl PostgreSQL jasná volba... o vnořených selectech už vůbec nemluvím.
Mě tak napadá: neumí innodb vnořené selecty?
MzM.... pěkný, díky :)
jinak odpovím na poslední dotaz stejně, jako my dva s oblibou odpovídáme jiným :)
>a nebudeš mít rychlejší to sám zkusit?
DA, poslední otázka byla samozřejmě řečnická a bude to pokračování seriálu :-)
Ještě korekce, ta druhá tabulka musí být taky typ=innoDB.... Jinak to nebude fungovat.
Takže pro ty, koho to zajímá, tabulky typu HEAP jsou tabulky v paměti. Navíc
CREATE TABLE x (i int) TYPE=HEAP
a
CREATE TABLEx (i int) ENGINE=MEMORY
jsou údajně (dle dokumentace) rovnocenné zápisy...
Tabulky v paměti mají, pochopitelně, některá omezení. Nemůžou např, používat sloupce typu blob a text, indexy mohou být max 500 byte dlouhé atd...
Pokud je něco v paměti, tak to asi nemá dlouhé trvání. Zase přístupy jsou rychlé až velmi rychlé, což na klientovi asi moc nepoznáte.
Nevím, použití se asi dá najít...
pokiaľ mi je známe, tak innodb sú podstatne pomalšia ako myisam
v porovnani s inými db (pg, oracle) sú dokonca _ešte pomalšie_
síce toho vedia viac, ale aj tak...
tie heap by som si vedel predstaviť na ukladanie dát pri výpočtoch
ale keby som bol prevádzkovateľom webhostingu asi by som ich zakázal, imho to strašne žerie pamäť a mohol by skolabovať celý db server ak by ich bolo heapov veľa
inak dík za info :-) o týchto veciach v mysql, aj keď si myslím že pg je aj tak použiteľnejšie a odladenejšie ... momentálne sa snažím o ňom niečo naučiť (keď tak, tak píš aj niečo o ňom :-) )
děkuji za skvělý seriál :) už se nemůžu dočkat dalšího dílu :)
xixlix: otázka je, co je to "podstatně pomalejší", na zdejších tabulkách, co jsou do 5MB to, podle mě, ani nepoznáš. Navíc komfort kaskádového mazání ti to může hodně vynahradit. Takové vytvoření spojení k vůli mazání 3 souvisejících tabulek... Navíc je to Nx víc dotazů (zase narazíš na limity)...
Prostě chce to najít použití...
no tak 5 MB je nič, to je pravda... na také malé tabuľky to je skoro jedno :-)
viem si predstaviť úchylné kaskádové mazanie cez php na mysql tabuľky typu myisam :-)
čo by výsledne bolo o dosť pomalšie.
vždy je ale lepšie, keď si tieto veci zaopatrí databáza, nie aplikácia, tam to nemá čo hľadať
hmm tak ma napadlo, snažil som sa niečo nájsť okolo nastavovania jazykov (sk) v pg
a teda aj aj radenie v dotazoch
chcelo by to nejako nastavovať na tabuľky, resp ak to nie je možné tak pri každom spojení
(to ale nie je výhodné pretože sa musí dať viac dotazov na pg)
skúšal som niečo ako SET LC_COLLATE TO 'sk_SKISO8859-2; ale nadáva mi, že to nemôžem meniť
na tabuľky som nenašiel nič, skúšal som niečo ako
CREATE TABLE a (
nieco int
) lc_collate='sk_SKUTF-8';
:-) a podobne, ale to skončí syntax error-om
díky moc
se obávám, že jazyk se na pg nastavuje na celou db a pak už s tím nejde hnout. Aspoň manuály tak hovoří. Teda hnout s tím jde, ale zase na celou db a ještě musíš být admin a mít přístup k povelové řádce... tady má asi Pg ještě rezervy..
... a už jste objevili kouzlo transakcí?
objevil, ale nemam vetsinou duvod je pouzivat.