xom`s pinion - Tom Hnatovsky Blog

Dlohotrvající OFFSET v PostgreSQL

29. května 2012 PostgreSQL nekomentováno

PostgreSQL tutoriálNedávno jsem řešil problém s pomalým vykonáváním dotazů v PgSQL databázi při použití klauzule OFFSET. Pokud pustíte select s několika joiny nad tabulkou s deseti tisíci záznamy a ještě z něj chcete data dostávat postupně (pomocí limitu a offsetu) – například v případě stránkování, tak se pěkně načekáte.

Problém spočívá v tom, že Postgre aplikuje limit a offset nad celou výstupní tabulkou a to mu něco potrvá.

Problematický zápis

SELECT a.*, b.neco, c.neco FROM tabulka a LEFT JOIN dalsi_tabulka b ON b.id_a = a.id LEFT JOIN extra_tabulka c ON c.id_a = a.id LIMIT 100 OFFSET 90000

Celý nastíněný problém lze vyřešit dalším joinem – takovým, který poběží pouze nad sloupečkem id hlavní tabulky.

SELECT a.*, b.neco, c.neco FROM (SELECT id FROM tabulka LIMIT 100 OFFSET 90000) AS pomocna_tabulka JOIN tabulka a LEFT JOIN dalsi_tabulka b ON b.id_a = a.id LEFT JOIN extra_tabulka c ON c.id_a = a.id

Časová úspora je u opravdu velkých tabulek neuvěřitelná.

Windows XAMPP - Aktualizace PHP

5. května 2012 Web designPHP nekomentováno

XAMPP Při vývoji PHP ve Windows používám XAMPP (jednoduše obsahuje všechno potřebné k běhu PHP aplikací bez zdlouhavého nastavování různých konfiguračních souborů).

Pokud používáte defaultní nastavení Apache a PHP, tak je aktualizace verze PHP nejjednodušší pomocí updatu celého XAMPP (stáhnete si nejnovější vydání a přeinstalujete).

Pokud ale používáte některé addony či speciální konfiguraci Apache či PHP, tak můžete čelit riziku, že při aktualizaci celého XAMPP a následnému dohrání starých konfiguračních souborů vám nebude server fungovat. Pokud se bojíte při aktualizaci PHP přehrát i Apache či MySQL (součástí balíku XAMPP), tak můžete jednoduše zaktualizovat PHP pomocí těch pár kroků:

  1. Zazálohujte si vaši současnou verzi XAMPP
  2. Stáhněte si ZIP balíček PHP pro Windows
  3. Zastavte Apache server (bez toho vám nepůjdou některé knihovny přepsat)
  4. Zkopírujte obsah ZIP balíčku do php adresáře, který je umístěn v xampp adresáři (defaultně c:/xampp)
  5. V adresáři apache/bin (umístěný v xampp adresáři) přepište existující soubory ze ZIP balíčku (=pokud existuje soubor v ZIPu i v adresáři, tak jej přepište)
  6. Spusťte Apache

Upozornění! Využití tohoto návodu je na vlastní nebezpečí a měli by dle něj postupovat pouze lidé, kteří alespoň trochu tuší, co dělají :) Před jakoukoliv změnou si zálohujte data!

Barevné schéma notifikací

11. ledna 2012 Web design nekomentováno

Ukázka barevných schémat notifikačních boxů

Různé projekty na různých platformách mají jedno společné - notifikace akcí, které by měly být v barvách, které je člověk zvyklý vnímat kolem sebe. Lidé si již vžili, že zelená znamená dobré zprávy, červená ty zlé, žlutá či oranžová upozorňuje a modrá informuje.

Obrázek v tomto článku obsahuje notifikace v barvách, které jednotně používám na mých projektech. Toto barevné schéma se mi osvědčilo:

Success notifikace
Pozadí   #e9f9e5
Rámeček   #b4e8aa
Písmo   #318f14
Alert notifikace
Pozadí   #f9f9e5
Rámeček   #e8e3aa
Písmo   #d9ad12
Info notifikace
Pozadí   #e5ecf9
Rámeček   #aac6e8
Písmo   #00499c
Error notifikace
Pozadí   #f9e5e6
Rámeček   #e8aaad
Písmo   #d23e17
© 2004-2012 Tom Hnatovsky - Všechna práva vyhrazena