Ušetřete

Hlavní navigace

Články v rubrice Databáze

PostgreSQL: statistiky a chyby v odhadech

Optimalizátor v PostgreSQL pracuje s hodně zjednodušujícím modelem procesu zpracování dotazu. Tento model bere v potaz čtení dat z disku sekvenčně, čtení dat z disku náhodným přístupem, režii operací spojených s přípravou každého řádku v paměti i režii operací spojených s každým operátorem (režie výrazů).

PostgreSQL 9.4: transakční SQL JSON databáze

Postgres má ve svém genetickém kódu tři základní vlastnosti: ACID, SQL a rozšiřitelnost. Lze ho proto použít v extrémně různých oborech – pro socioekonomická data, pro vědecká data, či pro řízení procesů. S kvalitní podporou formátu JSON (od verze 9.4) může konkurovat i databázím určeným pro správu dokumentů.

Markus Winand: SQL Performance Explained

Při svých školeních vidím, že se překvapivě hodně vývojářů nedokáže jednoduše vymanit z limitů, které jsou vlastní technologii, kterou při své běžné práci denně používají. Jsou příliš zafixovaní na jednu technologii, což jim pak překáží efektivně řešit případné výkonnostní problémy moderních databází.

Novinky v připravovaném PostgreSQL 9.3

Vývoj 9.3 začal pomalu a utahaně. Dokončení 9.2 bylo obtížnější a delší, než by si vývojáři přáli. Navíc do 9.3 padlo několik důležitých patchů, které bylo potřeba zaintegrovat nebo zahodit, protože se jejich integrace do upstreamu vlekla. Co je tedy v nové verzi nového? Na co se můžete těšit?

Databáze MariaDB válcuje MySQL

Začátkem prosince byla založena organizace MariaDB Foundation, která nyní zastřešuje vývoj databáze MariaDB. Snahou projektu MariaDB je vrátit MySQL zašlou otevřenost, o kterou pomalu přichází pod vedením firmy Oracle. Ta koupila databázi MySQL společně s firmou Sun a od té doby postupně uzavírá její vývoj.

Používání indexů v PostgreSQL: krátce a pro začátečníky

V relačních databázích se běžně setkáváme s dvěma typy databázových relací (lišících se svou strukturou a chováním). Nejčastějším typem je halda (heap) a index. V haldě jsou záznamy v nedefinovaném pořadí. V indexu (Btree) pak jsou záznamy uspořádané podle vybraného klíče.

Historie projektu PostgreSQL

Je fascinující sledovat stopy INGRESu (projektu, který byl zahájen více než před třiceti roky) v moderním a rozšířeném PostgreSQL. Příkaz COPY, příkaz createdb, backslashové příkazy v SQL terminálu, návrh některých systémových tabulek – to je vše živým odkazem tohoto úžasného projektu.

Novinky a vývoj v PostgreSQL 9.2

Vývoj 9.2 pokračoval v kolejích vyjetých 9.0 a 9.1. Díky tomu, že v loni a předloni se vyřešily některé diskutabilní otázky, poslední rok byl hlavně a jen o práci. Ne, že by se občas nevedly bouřlivé diskuze. Ale téměř vždy se poměrně rychle podařilo najít kompromis, který byl často kvalitnější než původní návrhy.

MySQL: Master - Slave replikace

Pokud jste si někdy přáli mít stejná data ze své MySQL databáze na více místech najednou, tak tento článek vás jistě potěší. Dnes si totiž ukážeme Master – Slave replikaci na MySQL, což je databázová funkce, která přesně toto dělá. Řekneme si také proč je dobré replikovat a také si ukážeme, jak na to.

Efektivní používání PL/pgSQL

V následujícím článku bych chtěl zkompletovat sérii článků, které jsem o PL/pgSQL pro Roota napsal. Kvůli PL/pgSQL jsem si vybral PostgreSQL a vlastně kvůli PL/pgSQL jsem se stal jedním z vývojářů PostgreSQL – při práci na jednom projektu mne PL/pgSQL drobet štval, tak jsem napsal patch, který byl přijat.

Bandicoot a webové aplikácie

Bandicoot je nový programovací systém založený na relačnom modeli. Cieľom tohto článku je implementácia ukážkovej webovej aplikácie s použitím Bandicootu a JavaScriptu. Nasledujúce odstavce popisujú, ako vytvoriť jednoduchú aplikáciu. Na perzistenciu a kalkulácie s dátami je použitý Bandicoot.

Nový pohľad na tradičný relačný model

Relačný model je dobre známym pojmom v oblasti softvérového inžinierstva. Tento dvojdielny článok vám predstaví projekt Bandicoot, ktorý implementuje relačný model netradičným spôsobom. Zároveň si ukážeme, ako vyvíjať softvér pomocou relačného modelu, a to bez použitia tradičných relačných databáz či jazyka SQL.

PostgreSQL 9.1 aneb stále vpřed

Po roce je tu nová verze PostgreSQL – respektive máme tu betu – a je tudíž jasné, co v 9.1 bude a nebude. V podstatě až na příkaz MERGE, který bude až v 9.2, byly plány pro tuto verzi splněny. PostgreSQL nyní podporuje COLLATION podle ANSI/SQL. Nechybí ani podpora SQL/MED (čtení externích csv souborů).

PostgreSQL 9.0: nový začátek

Z mého pohledu byl rok spojený s pracemi na 9.0 asi nejklidnějším rokem, který pamatuji (z pohledu vývojáře): Organizace vývoje založená na commitfestech se osvědčuje. Vývojáři, kteří pracují na náročných, problematických funkcích, se už smířili s tím, že se nic nedá uspěchat a že život není jen programování.

Co nefunguje v MySQL a jak to obejít

Velmi rozšířený a oblíbený databázový server MySQL udělal za posledních několik let významný pokrok a k jednoduchému rychlému úložišti přidal i některé pokročilejší funkce. Na část vlastností je ale potřeba si dát pozor, některé z nich přímo nefungují. V následujícím článku uvádím ty nejviditelnější z nich.

Pole v PostgreSQL

Pole a relační databáze nejdou dost dobře dohromady - alespoň na první pohled. Rozhodně podpora polí v relačních databázích není úplně běžná, a osobně si myslím, že je to možná i dobře. V databázovém systému, který pole podporuje, lze k databázi přistupovat skutečně jako k pouhému úložišti dat.

Udržujte si svou databázi v bezpečí s Pgpool2

Bezpečnost dat dnes znamená všechno zdvojovat. Máme dva disky, máme druhý stroj na zálohy, máme dvě linky do Internetu a nebo také dvě auta, abychom si byli jistí, že se k serverům dostaneme. Když se nám povede umístit data online na dvě místa, můžeme mluvit o úspěchu. Dnes si povíme, jak to udělat s Postgresql.

Transakce a izolace transakcí v databázích

Kdyby neexistovala MySQL, tak by transakce patrně nebyly tak populárním tématem. I když ne všechny databáze byly a jsou transakční, nikdo (do nástupu MySQL) netvrdil, že transakce jsou něco „navíc“. MySQL přišlo s novou filozofií - databáze nemusí být až tak 100% spolehlivé, hlavně musí být rychlé.

CTE a analytické funkce v PostgreSQL

V článku bych rád ukázal cestu ke dvou novým funkcím PostgreSQL - CTE a analytickým funkcím. Z pohledu SQL o nic nového nejde - tyto funkce jsou dobře známé z komerčních databází. Z pohledu OSS databází se jedná o významný krok k plné implementaci ANSI SQL 200x a ke znatelnému rozšíření komfortu vývojářů.

Úvaha ohledně zneužívání LIKE v databázích

Na svých kurzech, trochu s nadsázkou, tvrdím, že programátor, který použije LIKE, si koleduje o to nebýt programátorem. Nedávno se na dbsvětu objevil na toto téma článek. To je jistě přínosné, bohužel zmiňovaný článek nešel příliš do hloubky. Co je na tomto na první pohled neškodném operátoru tak hrozného?

PostgreSQL v roce 2009 (PostgreSQL 8.4)

Každoročně přinášíme článek věnovaný novinkám v PostgreSQL a ani letošní rok nebude výjimkou. V březnu finišují práce na dokončení verze 8.4, která by měla být k dispozici začátkem léta. Na nové funkce se uživatelé dlouho těšili - podpora rekurzivních a analytických dotazů. Co nás přesně čeká?

Správa uživatelů a databázových objektů v PostgreSQL

Určení vlastníků db objektů se v řadě projektů vůbec neřeší nebo řeší příliš pozdě. To už obvykle chaos ve vlastnictví začne komplikovat administraci. Tento článek se věnuje popisu problematice vlastnictví db objektů a jako bonus obsahuje pár užitečných základních doporučení.

Čtení prováděcích plánů v PostgreSQL

Každý, kdo trochu déle pracuje s SQL databázemi, časem narazí na "prováděcí plány dotazů". Zatímco SQL dotazy je možné navrhovat bez hlubší znalosti konkrétní databázového systému, při optimalizaci dotazů se pak bez těchto znalostí neobejdeme. Prvním krokem při optimalizaci je právě analýza prováděcích plánů.

Korelované vnořené dotazy: proč nepoužívat a čím nahradit

Korelované poddotazy zásadně rozšiřují funkcionalitu SQL. Je ale třeba zároveň říci, že zpracování SQL dotazu obsahující korelovaný poddotaz je poměrně náročné. Navíc prakticky ve všech případech existují efektivnější způsoby, jak danou úlohu vyřešit lépe a bez korelovaného poddotazu.

[ ( LEFT|RIGHT [ OUTER ])| INNER ] JOIN v SQL

Outer join (left nebo right) je pravděpodobně nejkomplikovanější část příkazu SELECT – alespoň pro začátečníky. Jakmile tuto klauzuli zvládnou, tak zvládli SQL. Jsou tu ještě pasti v podobě korelovaných poddotazů. Těm se ale lze vyhnout, zato spojování tabulek je denním chlebem skoro každého kodéra.

Otevření 602SQL Serveru: s křížkem po funuse

Překvapivé otevření kódu 602SQL Serveru je patrně jednou ze zásadních událostí na domácí IT scéně. 602SQL Server je ukázkou, jak relativně kvalitní produkt díky špatnému marketingu a podpoře nedokáže držet krok s konkurenčními produkty a ani s open-source konkurencí. Otevření kódu bohužel přichází pozdě.

PostgreSQL 8.3: nejen razantní navýšení výkonu

Během dnešního dne bude uvolněna beta PostgreSQL 8.3. To znamená, že se do kódu dostanou již pouze opravy a je proto docela jisté, jak bude nová verze PostgreSQL vypadat. Od vydání bety do vydání ostré verze se v případě PostgreSQL čas měří na týdny, takže se můžeme začít těšit na ostrou verzi.

Zákys jménem flattening

Uživatelé, kteří přechází z MySQL nebo Firebirdu, občas naráží na "inteligenci" PostgreSQL. V PostgreSQL není žádný způsob, jak jej donutit použít konkrétní index, a ještě se to považuje za výhodu. I když má PostgreSQL zřejmě nejpropracovanější optimalizaci ze všech open-source databází, mohou nastat situace, kdy optimalizace selže a sql dotazy trvají příliš dlouho. Kdy se tak stane a jak to řešit?

Co nás čeká v PostgreSQL 8.2

Rok intenzívního vývoje PostgreSQL vývojáři uzavřeli uvolněním beta verze 8.2. Na plnou verzi si ještě budeme muset počkat do Vánoc, nicméně už nyní si můžeme vytvořit představu o další verzi. Asi nejočekávanější podpora bitmapových indexů a editovatelných pohledů chybí. Neznamená to ovšem, že by se přechod na tuto verzi nevyplatil.

Uložené procedury, event scheduler a informační schémata MySQL

Když jsem se poprvé setkal s rekurzí, vůbec jsem nechápal, o co jde. Většina překladačů a interpretů ji nepodporovala a spíš se hledaly nerekurzivní řešení. Staré časy - MicroBáze Pascalu, TurboPascalu. Jsem rád, že mám na co vzpomínat. Dost nostalgie. Rekurze tu je.

reklama