Jaky server pro firemni databazi rubrika: Databáze: SQL

3 Ondra-310
položil/-a 4.1.2016

Na firme potrebujeme zacit budovat databazi, kde budou necekane bezna firemni data. (Jsme obchodni firma, takze informace o zakaznicich, produktech, objednavkach atd.)
Aktualni stav, kdy jsou data ulozena v databazi poskytovatele IS prestava vyhovovat, protoze dodavatel neni schopen pokryt nase potreby na customizaci a navic je to trochu hokej se v tom vyznat. Postupne chceme proto prejit k vlastnimu systemu, ktery nam umozni mit plnou kontrolu nad daty.
Otazku, kterou resime je, jako platformu zvolit. Predpokladame, ze se bude jednat o rozsahy maximalne v radu milionu radku (soucasne nejrozsahlejsi tabulky maji cca 10mil zaznamu (polozky faktur, objednavky). Produktu v nabidce bude max cca 2-3mil. Zakazniku do 0,1-0,2mil.
Soucasna databaze je MSSQL. Zde vnimam dost problemu pri komunikaci s linux servery (externi PHP aplikace), coz se sice podarilo odladit, ale byl to opruz, takze nejsem priznivcem u ni zustavat. Ale divim se, ze i pri tak "divoke" strukture dat, ktera si nejak nehraje na nejakou strukturu to porad jakz takz stiha.
Premyslime prirozene nad MySQL, tam mam trochu obavy, co s tim do budoucna Oracle udela a taky jestli to bude stihat vykonove. Nebo zvolit MariDB, ktera by mela byt na tom vykonove lip, ale taky mam obavy aby to fungovalo i za 10let...
Nebo jestli zvolit komercni Oracle. Bude to prinaset ocekavane benefity za ty penize a je to porad jeste urcity leader ve vyvoji DB, nebo uz je to jenom marketing? Nebo nejake jine reseni?
Diky za jakekoliv nazory, musim to pomalu rozseknout a potom drzet kurz :-). Takze budu rad za nejake postrehy z praxe.

Komentáře

  • messa : Uvažoval jste i nad PostgreSQL? Jinak MS SQL je velmi kvalitní databáze (toto není ironie, podívejte se např. na čem běží StackOverflow.com), pokud jste ji už odladili, tak možná není důvod ji opouštět. 4.1.2016
  • podhy : +1 za postgres navíc vám umožní integraci dat i z jiných databází pomocí FDW. MS SQL je dobrá DB za to se musím také přimluvit, i když v kombinaci s PHP to v současný době (PHP7) není úplně nejlepší) 4.1.2016
  • harrison314 : Tiez by som zvazil zostat pri MS SQL, je richchlejsia a lepsia ako Postrge, takze tvoja volba b mala zalezat aj od inych pozidaviek (napriklad aky mas typ licencie, ci chces zostat pri priamom pristupe PHP na DB, alebo prejst na WS, ci s MS SQL na WCF RIA Services). 5.1.2016
  • podhy : harrison314: no lepší? To bych zase netvrdil. Má některé hezké fíčury, ale to postgres taky. Navíc z mého pohledu se postgres více drží ANSI SQL standardů. Výkon ten si netroufnu porovnávat (to by možná mohl ohodnotit Pavel Stěhule), ale podle mě tam nijak zásadní rozdíly nebudou. 5.1.2016
  • pavel.stehule : @podhy: V OLTP je výkon Postgresu a MSSQL +/- stejný - obě databáze mají statistikami řízený planner - díky ale různé implementaci planneru budou jiné plány, a něco bude rychlejší na Postgresu něco na MSSQL - v zásadě ale obě databáze mají stejná hrdla IO, a pak CPU. Něco jiného je v OLAPu, kde má MSSQL podporu CUBE a pak v enterprise verzi (za jiné peníze) jsou k dispozici partitioning a paměťové tabulky. Pro zmíněnou velikost dat ale stačí cokoliv - je to malá databáze, takže stačí nedělat blbosti, něco málo vědět o databázích a bude dostatečně rychlá jakákoliv databáze, která je k dispozici - a pokud se blbosti dělají, tak bude pomalá jakákoliv databáze (včetně těch extrémně drahých). Na malých datech jsou bežné databáze i ty enterprise stejně rychlé - rozdíl se pozná od stovek GB. MSSQL je dobře integrované s windows, má hodně dobré UI, ale je už docela komplexní a přístup z Linuxu je opruz. Postgres je jednodušší na administraci, perfektní konzoli a perfektně se skriptuje - ale volně stažitelné UI je primitivní (je k dispozici kvalitní komerční). K Postgresu se bez problémů dostanete odkudkoliv z čehokoliv. V heterogenním prostředí s lidma schopnýma skriptování v shellu má Pg navrch - v homogenním win Prostředí může Postgres působit cize. SQL v Postgresu mi přijde čitelnější, méně kryptografické - je modernější než ještě sybase T-SQL. Uložené procedury jsou v PG výrazně lepší než v MSSQL - ale je otázkou, jestli tahle vlastnost je pro tazatele důležitá. 5.1.2016
  • Ondra-310 : Diky za nazory, PG jsem se trochu vyhybal, protoze jsem zatim nebyl donucen s nim pracovat, ale jak to tak posloucham, tak by to asi stalo za to resit. Ulozene procedury se v nejake mire pouzivat urcite budou. V MS jich mame spousty a vypadaji obcas dost divoce :-) takze to by bylo urcite plus. Zas OLAP je plus pro MS, k jeho potrebe to casem urcite dospeje. Ale tak aspon se krystalizuji nejaci favorite... 6.1.2016
  • pavel.stehule : @Ondra-310: V OLAPu má MS náskok, v Postgresu se na lepší podpoře OLAPu intenzivně pracuje. Už za rok přijde podpora více CPU pro jeden dotaz, pracuje se na column store a na přepisu partitioningu. Během několika málo let se rozdíl mezi MSSQL a Postgresem v OLAPu výrazně sníží (a k dispozici by měly být funkce, které jsou u MS jen v enterprise verzi). 6.1.2016
  • Ondra-310 : @pavel.stehule: Diky moc za info, to zni dobre. O tohle se samozrejme zajimali analytici, takze to by je melo potesit. Jake to komercni UI pro PG jste mel na mysli, ze je dobre? 7.1.2016
  • podhy : jen doplním, že postgres ve verzi 9.5, která nám co nevidět vyjde, má podporu pro CUBE 7.1.2016
  • pavel.stehule : @podhy: 9.5 je venku. Když jsem mluvil o CUBE v MSSQL, tak jsem myslel "Analysis Services", což je relativně samostatná nerelační část MSSQL, kde jsou uložené preagregované data. CUBE v Postgresu je implementace tzv. Grouping Sets, což je rozšíření agregačních funkcí - nemá to ale podporu pro implicitní persistentní preagregaci. Preagregaci si člověk musí udělat sám. 7.1.2016
  • pavel.stehule : @Ondra-310: http://www.sqlmanager.net/en/products/postgresql/manager 7.1.2016
  • podhy : pavel.stehule: to, že vyšel jsem se dozvěděl chvilku potom co jsem příspěvek odeslal :-) 7.1.2016
  • Murděj Ukrutný : Oracle bych nebral, dřív možná ale na dnešní dobu je dost je dost zaostalá: nerozezná null a '', něco jako autoincrement sloupec umí až od poslední verze, simulace LIMIT je na 3 subselecty. Jo dá se to nějak obejít ale proč se s tím drbat když jiné DB to umí už v základu. Licencování a ceny jsou taky dost "veselé". 9.1.2016
  • pebr0u : @Murděj Ukrutný: Autoincrement se v Oracle dělá sémanticky jinak, pomocí sekvencí. A tak to je už 20+ let. Osobně mi sekvence přijdou rozumnější než autoincrement (např. když potřebuješ část dat importovat z jiného datového zdroje a část mít lokálních - se sekvencemi bez problémů, s autoincrementem na hranici řešitelnosti). LIMIT dtto. Když do Oracle voláš pomocí sémantiky MS SQL/MySQL, bude ti připadat divná. Pokud pochopíš přístup Oracle a DB/2, přijdou ti divné MS SQL a MySQL. Licencování je větší problém, zejména s aktuální redefinicí SE na SE2. 14.1.2016
  • harrison314 : @pebr0u: aj MS SQL ma sekvencie a nemas tam LIMIT 14.1.2016
  • pebr0u : @harrison314: Sekvence má MS SQL teprve v poslední verzi, pokud si dobře pamatuji. U zákazníků máme spoustu instancí starších, tak to beru, že ta funkce spíše není. 14.1.2016
odkaz
7 harrison314
odpověděl/-a 4.1.2016
 
upravil/-a 4.1.2016

K tomu by som pridal aj funkcne poziadvky co ma Db zvladat.
Ale s toho co si napisal, mi vychadza Postrgesql (ked nechces komercnu).

Pro zobrazení všech 5 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.