PremiumSoft Navicat - nejlepší správa MySQL DB
Přestože můj názor na MySQL je dosti negativní (viz tento 3 roky starý článek), fakt je ten, že drtivá většina webhostingů implementuje právě tuto databázi, a člověk ji tedy u open-source produktů v podstatě musí používat, a musí zapomenout na pokročilejší věci a funkce prováděné na úrovni DB.
Toto naštěstí plně platilo 3 roky dozadu, dnes to není až tak hrozné, MySQL 5.1 umí "už" i views, stored procedures a další (tedy u jiných DB desítky let běžné) věci.
Na správu MySQL se dá použít webová aplikace phpMyAdmin, nicméně, při větším objemu dat tato rychle narazí na své limity a zkolabuje. Jedna z nejlepších variant pro správu MySQL je poté PremiumSoft Navicat pro MySQL, špičkový produkt s GUI navržený pro Windows, Mac OS X i Linux.
Edice Navicat Windows - Standard stojí US$ 99, verze Enterprise poté US$ 139, takže se při větším projektu zaplatí během pár hodin.
Základní rozhraní Navicat MySQL:
V Navicatu si můžete nadefinovat neomezené množství databází / připojení, podporované jsou i rysy nové MySQL 5.1 a preview 5.2. Připojit se k databázi můžete bez šifrování, pomocí SSL, SSH tunnel, či třeba pomocí stunnelu.
Jednou z nejdůležitějších funkcí je backup a restore, zálohování, funguje na 100%, a na rozdíl od phpMyAdmina umí dělat commit po každém INSERTu, takže se nestane, že na web nahráváte 10MB tar.gz soubor, poté to 10 minut cosi dělá, a nakonec to spadne na timeout (typický problém phpMyAdmina a zpracování více dat).
Návrh tabulek
Velice povedený je návrh (CREATE) a úprava (ALTER) vlastností tabulky, a to včetně tvorby indexů, klíčů, i triggerů.
Editace hodnot v tabulce
Editace dat plně podporuje veškerá kódování dostupná v MySQL, takže není problém se správnou diakritikou na českých Windows s CP1250
editovat data v UTF-8
. Rovněž můžete používat filter, pro omezení datasetu na požadované řádky tabulky.
A takto vypadá kontextové menu pro tabulku:
Grafický návrh dotazů (query)
Návrh dotazů je opravdu skvěle zpracovaný. Vyberete si tabulky pro dotaz, drag-and-drop myší namalujete relace, a Navicat automaticky vytvoří patřičné JOINy. Stejně vytváříte GROUP BY či HAVING.
Import dat
Výborná funkce je rovněž import (a export) z řady formátů, přes TXT soubor, XML, až po Excel (XLS) či Microsoft Access databázi. S touto funkcí je opravdu snadná migrace dat.
Konsole
Problém Navicatu nečiní ani konzole, v níž můžete zadávat libovolné SQL příkazy. K dalším funkcím patří monitorování stavu serveru, a plánování záloh.
Závěr
PremiumSoft Navicat pro MySQL je vynikající produkt, vzhledem na svoji cenu, pro správu MySQL databáze. Pokud vám přestává stačit phpMyAdmin a používáte MySQL na více projektech, je Navicat de-facto nutností.
Popisovaný software neznám, ale sám používám jiný - SQLyog (http://www.webyog.com/en/ ). Je to free nástroj (v základní verzi) pro správu MySQL. Návrhy a altery tabulek vypadají dost podobně. Bohužel, když už jsem jednou na hostingu, obvykle nemám jinou možnost, než sáhnout k tragicky pomalému PhpMyAdmin.
[1] SQLyog jsem zkoušel, 1x, zobrazil jsem si tabulku v UTF-8 a byla to změť znaků, takže deinstalace.. Navicat je opravdu mnohem lepší, vše funguje na 100%, jak má. Obzvláště parádní jsou zálohy :-)
Porovnávat webovou aplikaci s desktopovou je docela zhovadilost. To je jako srovnávat lodě a s autama...
Lamentování nad MySQL je jako hledění darovanému koni na zuby:) Je to prostě dar - tudíš zdarma - tudíš drahý:) Nemůžeme chtít po webhosterovi instalaci DB2, Oracle atd... Stálo by to víc, než jsme ochotni zaplatit.
Radku tak proč nevyužíváš u tvého skvělého systému BLOG:CMS postgreesql? Jen z důvodu malého rozšíření na hostingu nebo je tam jiný význam?
[8] BLOG:CMS má databázový layer pro SQLite, MySQL 4.0. MySQL 4.1 (5.x) a PSQL..
Vacsina hostingov ponuka aj Postgre ako alternativu v cene.
Ja uz pred cca 4mi lety pouzival neco podobneho. Ten softik se jmenoval MySQLFront, jehoz vyvoj se bouhzel zastavil :( Taktez jsem u nej ocenil podporu tunnel pripojeni na hostingy, ktere nepodporovaly vzdalenou spravu databaze.
Hmmm a proč rovnou nepoužít nástroje od "tvůrců" MySQL - Administrator, Query Browser, atd ... ?
[9] Není rozumnější použít nějakou abstrahující knihovnu jako např. ADOdb for PHP. (Chápu, že tvůj layer je také takovou abstrahujíc knihovnou, ale např. ADOdb má drivery pro desítky databází).
[15] Rozhodně souhlasím. Pro některé lidi je i $99 hodně a nástroje od MySQL nabízí rozumnou funkcionalitu za slušnou cenu.
Problémem samozřejmě je to, že málokterý webhosting Vám umožní napojení na MySQL server napřímo přes TCP/IP, a nástroje od MySQL zatím nic jiného nezvládají. Pak nezbývá, než se spokojit s phpMyAdmin, nebo zakoupit komerční produkt. Ale pokud spravujete databázi na lokálním počítači nebo se na vzdálený server dostanete přes TCP/IP, pak bych rozhodně zvážil MySQL GUI Tools, které za příslušnou cenu nejsou vůbec špatné. Existují také pro Windows a Linux, dokonce i pro Mac :-), a pochopitelně také jako zdrojáky...
MySQL Administrator: Správa databázového serveru, včetně zálohování a obnovování, včetně plánování záloh. Správa uživatelských účtů, připijení, sledování vytížení serveru, atd. Rozumné.
MySQL Query Browser: slušný nástroj pro dotazy. Samozřejmostí je editace v result setech (pokud tabulky mají nastavené primární klíče), grafické vytváření / modifikace tabulek (včetně indexů atd.). Zajímavostmi jsou rozhodně krokování SQL scriptu včetně break pointů, diff mezi result sety (vím, že se to dá udělat novým selectem, ale někomu lépe vyhovuje barevný diff). Pěkná je integrace MySQL reference. Tento nástroj má samozřejmě i své slabiny, rozhodně bych zmínil právě kódování.
MySQL Migration Toolkit: nástroj pro import dat do MySQL. Nástroj plně použitelný, ale mám k němu výtku, že neobsahuje přímo import z ODBC s výběrem zdroje, ale jen z JDBC kdy člověk musí ručně zadat třídu, connection string atd. Samozřejmě přes JDBC se dostaneme na jakýkoliv zdroj, ale je to trošku pracnější. Jinak přímá podpora importu z Accessu, MSSQL, Oracle, Sybase a samozřejmě jiného MySQL serveru. Také by stálo za to přidělat posílání dat opačným směrem, tj. z MySQL do cílové databáze.
MySQL Workbench: nástroj pro grafický návrh tabulek, pohledů, relací. Zatím je to alpha release
Tento software jsem poprvé použil asi před rokem při jednom rozsáhlém projektu a můžu ho vřele doporučit. Nevím proč, ale choval se lehce nestabilně při vytváření asi 50 tabulek. Vybral jsem ho proto, že jako jeden z mála uměl bezvadně pracovat s foreign keys, což jsem v phpmyadminu nenašel a já to velmi často potřebuji.
honza.skypala to zhrnul :) presne tak prostě rozumná sada nástrojů a zadarmo tak proč vymýšlet něco a platit za to ... ale každému se líbí něco jiného :)
Vypadá to velice příjemně, jdu to vyzkoušet, jestli to má nějaké demo...
Neni jeste lepsi nez Navicat treba takovy EMS SQL Manager?
Ja osobne uz nejakou dobu pouzivam SQL Manager Lite for MySQL (zdarma) a zatim jsem nenarazil na nic, co by mi v teto verzi chybelo. Navic v uzasne praktickem prostredi zalozenem na komponentach Developer Expres, takze maximalni komfort.
Také jsem EMS používal, bohužel poslední verze co jsem používal (zhruba před rokem) měla značné problémy s UTF-8, proto jsem přešel na Navicat, u kterého jsem nenarazil na jediný problém s charsety.
[21] O MSDE (očesaném MSSQL) toho moc nevím.
Ale to co mi vyplivl gugl na toto téma, mě moc neohromilo. To je např. citace z diskuse na interval.cz:
Pokud si pečlivě přečtete informace o MSDE či se zeptáte lidí s Microsoftu, tak se dovíte, že POČET UŽIVATELŮ JE NEOMEZEN, AVŠAK JE OPTIMALIZOVÁN NA 5 UŽIVATELŮ. A co to znamená? Pokud se na MSDE připojí 5 uživatelů, tak je vše v pořádku. Avšak pokud se připojí 6. uživatel, tak zpomalí práci předešlým pěti. Pokud vás zajímá licenční politika, tak "licenčně" se může připojit nekonečno uživatelů.
A tady je třeba citace ze stránek jednoho hostingu: MSDE je zjednodušená MSSQL databáze, která obslouží maximálně 8 současných spojení - první databáze tohoto typu je poskytována k vybraným webhostingům zdarma...
Takže nevidím důvod, těch pár celkem jednoduchých webů, které jsem před časem naprogramoval, převádět do čehokoliv jiného, stejně drahého:).
Navíc článek je o nástrojích pro správu MySQL, takže motat tady něco o MSDE je lehce OT.
V mém předchozím komentu (5) má být tudíž nikoliv tudíš. Jazykovým puristům (tedy i sám sobě:) se omlouvám. Démon alkohol za to může...
[16] pokud je databázový layer větší, než samotná aplikace, je to známka něčeho nezdravého. Kód ADODB má odhadem hrůzný 1MB.
[22] foreign keys podporuje MySQL už od historické verze 3.23
[22] Samozřejmě, že MySQL foreign keys podporuje. A to není vlastnost ani nové verze 5, ale vlastnost tabulky, jako např. InnoDB, která byla použitelná už ve čtyřkové verzi.
Nedokážu si život bez FK představit :)
Každopádně, tentokrát souhlasím s tím, že phpMyAdmin je dost nedostačující. Ba co víc, je to "bastl" vhodný max. pro 10 tabulek.
Já se jsem během dvou let v systému, dostal cca. na 350 tabulek (50% InnoDB, 50% MyISAM). Pravdou je, že jediný schopný nástroj je přímo od MySQL. MySQL Gui Tools.
Další alternativou je nějaký ten plugin pod Eclipse, jako je QuantumDB či Data Tools Platform. Oba pluginy jsou pro jiné DBMS ideální volba, ale pro MySQL verze 5 jsou nedostačující. Neumí views, stored procedure, apod. Sice se občas náznak v novější verzi objeví, ale nikdy to pořádně nefunguje :(
Jinak MySQL mohu hodnotit jako databázi až od verze 5.0, dříve to byla jen taková náhražka za ukládání dat do souborů, dnes je to již databáze :)
[27] mno 1 MB aplikacie snad nie su az take vynimocne ;) mimochodom ako tak na to pozeram, plus minus polovica z toho 1 mb su drivery pre odhadom 40 databazi, 100 kb skripty pre vytvorenie db struktur z datovych objektov... takze realna implementacia vrstvy je vyrazne mensia.
ale skor ma zaujima, co si predstavujete pod takym pojmom "nezdravy"? ja osobne posudzovavam aplikacie a frameworky podla roznych veci, ale s posudenym zdravosti podla mnozstva kodu som sa este nestretol.
[29] V případě PHP je samotné množství kódu také určující faktor. Protože při každém HTTP požadavku se musí celá knihovna soubor po souboru naparsovat, nakonfigurovat, atd.
Nicméně jako "nezdravý" spíš považuju přístup ADODB. Při návrhu aplikace je třeba zvážit, s jakou databází (či jakými databázemi) bude pracovat, včetně konkrétní verze. Třeba BLOG:CMS si vystačí s cca 10kB layerem pro 4 databáze. Já používám svůj layer dibi, který nabízí velký komfort při generování SQL dotazů, a také není o moc větší. Výsledkem jsou výkonné aplikace, spokojený programátor.
Ale ADODB je sumou potřeb tisíců programátorů, tvrdě na úkor efektivnosti. Kód dávno rezignoval na eleganci návrhu a je plný hacků. Snaha emulovat rozdíly mezi jednotlivými databázemi je zoufalá - jednak to nelze, a především databáze volíme právě kvůli těm rozdílům.
Jako webovou aplikaci bych doporučil phpFlashMyAdmin, není sice zdarma (ale skoro, stojí $5) a určitě je lepší než phpMyAdmin.
[30] nepoznam presne adodb, ani v php nie som moc expert, ale mnozstvo kodu v knihovne a mnozstvo vykonavaneho (a teda parsovaneho) kodu nie je to iste. predpokladam, ze sa parsuju napr. len pouzite drivery a utility.
ale ano, pokial ste tym nezdravym myslel konkretne pristup adodb k rieseniu problematiky, moze byt. ja som povodne reagoval na to, ze velkost je znamka niecoho nezdraveho. vedel by som si totiz predstavit db vrtvu, ktora by mala danu velkost a napriek tomu by bola zdrava, len by riesila ine (mozno pre vas nepotrebne) poziadavky (or mapping, cacheovanie zaznamov - neviem nakolko pouzitelne v php, ...)
Zkoušel jsem demo Navicatu a vypadá to docela zajímavě.
Neznáte někdo podobný software, který se dokáže připojit k MySQL, stáhnout obsah databáze na HDD, umožní v příjemném uživatelském prostředí změnit údaje v databázi a pak zaktualizuje databázi na serveru? Optimální by bylo, kdyby bylo možné si program naskinovat a nadefinovat jaké položky je možné aktualizovat (pro uživatele, kteří nemají právo měnit vše).
Mě celkem vyhovuje HeidiSQL, donateware, zdá se mi i celkem podobný Navicatu... (http://www.heidisql.com )
[26] MSDE je 8 let stará záležitost určená pro vývojáře, ne do reálného provozu. Dneska máme SQL Server 2005 Express. Ten není omezen na počet uživatelů, ale na množství zkonzumované paměti (tuším že 1GB). To jen tak na okraj.
[33] Částečně to jde s SQLyog, má slušnou synchronizaci databází, takže si můžeš nadefinovat dva joby (zkopíruj ostrou db na localhost, localhost na ostrou), a pak je spouštět, s tím že se přenáší jen změněná data.
Pro hostingy které nedovolují vzdálený přístup k MySQL je pak výborná funkce http tunelu - nahraješ na hosting jeden php soubor, a pak můžeš i takovou databázi obsluhovat ze SQLyogu...
Navicat používám více než rok a musím říct, že je to velmi dobrá volba. $99 je částka více než únosná. Oceňuji hlavně širokou podporu všech možných formátů (včetně pro mě velmi důležité podpory prehistorické databáze FoxPro s poli typu Memo a neméně historického tabulkáče QuattroPro 5.x/DOS).
I v ostatních funkcích je tento nástroj velmi dobrý. Jako neprogramátorovi mi velmi vyhovuje vizuální návrh dotazů, intuitivní prostředí, ... . Prostě zmíněných $99 byly velmi dobře investované peníze.
[35] SQL2005 Express je stejně nepoužitelné jako MSDE. MSDE nebylo určené pro vývojáře, ale dokonce se nad tím dělali i komerční projekty ( pár jich znám )
SQL2005 E má omezení 1CPU(jádro) 1GB RAM a DB max 4GB a nepodporuje 64bit systémy a jede pod WOW
Když už je tedy řeč o sql ex 2005, tak omezení není na jádro, ale na CPU, 4GB na DB a nepočítá log, neobsahuje některé features jako index view, partitioned view, scheduled tasks, profiler, tuning wizard atd ..
Základni rozdíl mezi MSDE a SQLEX spočívá v tom, že msde obsahoval workload governor, který vkládal wait() před logical reads, tedy zpomaloval dotazy, tohle už EX nedělá, takže pokud vám stačí 1 CPU a 1GB paměti pro db server, tak se dá použít ..