Ja bych nerekl, ze je prasak. Naopak, pro pouziti, pro ktere je Sqlite zamyslene, je to zajimava vlastnost, ze jeden sloupec muze obsahovat ruzne druhy dat. Nicmene bych k tomu jeste doplnil:
- Ano, Sqlite vzdy uklada data tak, aby byl usporny. Text zabira opravdu jen tolik, kolik je dlouhy. Dokonce treba Integer zabira od 1 do 8 bytu, podle toho, jak je ukladane cislo prave velike. Atd.
- Ackoliv by se mohlo zdat, ze definice typu sloupcu je u SQlite jen na paradu, neni tomu tak! Deklarace sloupce tabulky svuj vyznam ma.
Napriklad kdyz mas sloupec typu TEXT, tak i kdyz do nej ulozis cislo, bude vzdy ukladano jako text. Provede se konverze.
Kdyz mas ale sloupce jako ciselny, pak se zase pro zmenu text pokousi prevest na odpovidajici ciselny typ. Az kdyz konverze selze, je to ulozeno fyzicky jako text.
- z toho vyplyva, ze pokud se chces vyhnout zbytecnym konverzim, a zaroven ukladat data efektivne, je dobre pouzivat spravne datove typy. Nicmene pokud k databazi pristupujes pres nejake ty univerzalni frameworky, tak tam se odehrava tolik nadbytecnych operaci, ze je to skoro jedno. Na druhou stranu, pokud pristupujes pres nejaky lehky wrapper, tak tam dokazes pocitit zrychleni.
