zacnu poslednimi, protoze v hloubi duse doufam, jak budu oznacen za neznaleho :)
fulltextove indexy nelze pouzivat v ramci innodb tabulek – tim jde do kytek transakcni bezpecnost a vykon v ramci jednoho systemu. Obejit to prirozene jde, ale …
v tomhle se zda byt i manual neuprosny
Full-text indexes can be used only with MyISAM tables, and can be created only for CHAR, VARCHAR, or TEXT columns.
nazvyTabulek a nazvySloupcu – osobne velmi durazne! varuji pred pojmenovanim velbloudi syntaxi nazevTabulky a touto syntax i v ramci pojmenovani poli. Krom toho, ze je pak vhodne si adekvatne upravit nastaveni mysql v teto veci, mysqldump na windwos (lokal) exportne strukuru a cizi klice definuje cele lowercase … „nazevpolicka“ – prestoze v tabulce je definovano jako nazevPolicka
VIEWs: bohuzel musim potvrdit dve veci – fatalni nedokonalost view a zaroven jejich pomerne zasadni nevyzpytatelnost
omlouvam se, pokud to bude znit, jako „jedna pani povidala“, ale mam zkusenost, kdy select view join dalsi data je rychly ci nepatrne rychlejsi, nez natvrdo poskladany select
v drtive vetsine pripadu je vsak vykon jakykoli select z view + dalsich dat naprosto zalostny – v ramci sveho vytizeni jsem rezignoval na zjistovani pricin a optimalizaci a proste do dotazu, ze kterych jsem si slavnostne view vypreparoval zvlast, opet sql instrukce natvrdo doplnil
ve vysledku jde dotaz, ktery je hodinami odladeny a peclive vypiplany pres explain uplne do kytek :(
COMMIT: ohledne commitu, ktery manipuluje s tabulkami – v databazi jsem si vytvoril procedury, ktere zkompletuji souvisejici data spojene „parent-child“ vazbou (ucel je veskrze nedulezity), kazdopadne pokud je tato procedura pouzita v ramci transakcniho bloku, tak celou transakci odstreli – OMG :-)
nazvyTabulek a nazvySloupcu
Doplnil bych, ze na u sloupcu nezalezi na velke/male pismeno at je server nastaven jakkoli. U tabulek to ovlivnuji dve promene:
lower_case_file_system
lower_case_table_names.
fulltextove indexy – vetsinou se dela tak ze jedna je tabulka myissam a zde je fulltextovy klic a triggrem se doplnuje z innodb tabulek.
lower_case_table_names – jak jsem naznacoval – pouzivam – beru to tak, ze co mam v my.ini/my.cnf je pro me nastaveni serveru a dle meho zrovna na nastaveni tohodle zalezi, jinak Vam pri exportu mysqlko vsechno exportne malymi pismeny
ted doufam, ze se neseknu, resil jsem to rok zpet a od te doby si proste na nektere veci davam pozor
win systemu je to tusim jedno – chova se insesitivne – problem nastane, kdyz jsem si exportnul a nahral na linuxovy server …
lower_case_file_system vidim prvne a netusim tedy, jak a jestli srovna chovani, ktere jsem popisoval – abych rekl pravdu ve finale je mi to jedno, ocekaval bych v tomhle smeru sofistikovanejsi chovani mysqlka a to v tom smeru, aby to trosku striktneji „drzelo lajnu“ – proc je jine chovani v defaultni instalaci lin/win, …
ad fulltexty – jak to obejit vim, ale uz je to mimo „transakcni bezpeci“ – ja si to omluvim i tim, ze myisam je v necem rychlejsi (asi se tim spise jen utesuji :D) … ale …
protože v mysql je více typů algoritmů: http://dev.mysql.com/…orithms.html
A jakmile použijete jen trochu složitější (view z view nebo nějaké seskupování), vždy se použije ten blbější, co vše dělá přes temptable a pracuje s mnohem více záznamy než ručně poslaný select.
Právě neschopnost MySQL nabídnout funkčně alespoň těch několik málo podporovaných vlastností mě nutí uvažovat o postgresu.