Materialized views in MySQL

Hej,

Eto, sem končno začel pisat tisti obljubljeni blog, nekaj postov je že na njem, pa začnimo kar s prvim.

Materialized views in MySQL

Komentarji seveda dobrodosli, na clanek seveda, komentarji na izvedbo bloga in njegov dizajn me trenutno ne zanimajo ;) Mogoce kdaj drugic v temi Recenzije spletnihi strani :P

74 odgovorov

Vem da spet gnjavim ... amapk prosil bi će lahko kdo pove kako bi izpisal recimo zadnjih 20 zapisov v neki tabeli ?

Problem je da nimam IDjev ... ampak je zadeva malo drugače sestavljena ... z navadnim izpisom pa LIMIT 20 mi izpiše prvih 20 .... kako bi lahko zadnjih 20 ? Če sploh gre ?

Sem uredil ...

$st_slik = mysql_query("SELECT * FROM tablename");
    $st_slik = mysql_num_rows($st_slik);

    $st_slik_prikazi = $st_slik - 10;

    $lastADDEDcarGET = mysql_query("SELECT * FROM tablename WHERE `vidno` = 'da';");
    while($lastADDEDcar = mysql_fetch_array($lastADDEDcarGET))
    {
        if ($st_slik_prikazi != "0")
        {
            $st_slik_prikazi = $st_slik_prikazi - 1;
        }
        else
        {
            echo '<a href="view-car/'.$lastADDEDcar['file_name'].'/">'.substr($lastADDEDcar['file_name'], 0, 20).'...</a>, ';
        }
    }
    echo '...<br /><br />';

Evo tukaj je pa moja verzija. Nimam pojma če deluje :)

$stslik = mysqlquery("SELECT * FROM tablename");
$stslik = mysqlnumrows($stslik);
$x = 20;
$y = $stslik - $x;
mysql
query("SELECT * FROM tablename WHERE vidno = 'da' LIMIT $y, $x");

HeXeR, kje je pa razlog, da si se odlocil narest tabelo brez IDjev? Nek primary key skoraj mora bit v vsaki tabeli.

Hm ja, imel sem iz, ki je bil primary key, začel sem z ID 1 al 0 ... ko pa sem prišel do 128 mi tega ni hotlo vstavit .. z INSERT, ID se je sam povečeval ... zato sem napisal ročno SQL stavek kjer sem določil ID, ki ga želim vpisat, pa sem določil 128 ... nazaj pa sem dobil napako da ID 127 že obstaja (duplicate), msilim da je bil ID, TINY... pa 255, ... sicer pa sem imel samo random pa zadnje dodano vezano na ID, ostalo sem mel na filename, ker so vse slike v eni mapi ... pa morajo biti imena različna ... če bi kdo hoto v naslov potisnit kaj druga kot ime datoteke pa sem naredil da preveri če datoteka obstaja, šele potem išče podatke v MySql ... pa še en file kjer posodobim, datoteke ki so v namenjeni mapi v bazo ...tako da je vse avtomatsko ... :D

Nekaj naložim v mapi /slike pa zaženem odprem dbupdate.php ... pa mi datotek preimenuje, zamenja "_" in " ", z "-", potem pa vnese v MySql ... preden izpiše p preveri če file res obstaja ...

uh sem zabluzo :D

zelo si zabluzil, ja... izgubil sem se ze pri drugem stavku... vsekakor pa za ID zapisa uporabljaj vsaj INT in ne TINYINT :)

Kaj pa ? VARSCAHR ne gre ...

jest uporabljam double tudi pri manjših bazah(tabelah) mislim da je poraba premajhna da bi se sekiral

HeXeR, INT (integer) bo kar dovolj... od -2147483648 do 2147483647, ce vzames unsigned integer pa od 0 do 4294967295, predvidevam, da za tvoje potrebe cisto dovolj...

Vem da spet gnjavim ... amapk prosil bi će lahko kdo pove kako bi izpisal recimo zadnjih 20 zapisov v neki tabeli ?

Problem je da nimam IDjev ... ampak je zadeva malo drugače sestavljena ... z navadnim izpisom pa LIMIT 20 mi izpiše prvih 20 .... kako bi lahko zadnjih 20 ? Če sploh gre ?

Da ti olajšam zadevo, kako enostavno dobiti zadnjih n zapisov iz baze, si poglej na http://www.webdeveloper.com/forum/archive/index.php/t-42236.html