zakasnjeni insert upit

Započeo Marko Аcović, 20.10.2008, 23:00

prethodna tema - sledeća tema

Marko Аcović

Radio sam neke optimizacije upita na poslu i naisao sam na sledece:

INSERT DELAYED INTO table_name VALUES(.....)

Ovde se radi u upitu koji upisuje u tabelu onda kada niko ne koristi podatke iz te tabele, tj. kada je MySQL server slobodan. Mnogo korisna stvar za koju sam tek skoro saznao. Koristan je kad korisnik hoce nesto da upise u bazu ali ne zeli da ceka da se taj upit izvrsi. Tada server pamti podatke u baferu i izvrsava ih kad je server slobodan a korisnik moze normalno da nastavi dalje sa radom. Tek kada je server slobodan, izvrsava se upit. Jedina mana mu je sto je ovakav upit moguc samo nad bazama koje koriste MyISAM, MEMORY i ARCHIVE engine.
Vise informacija mozete naci na sledecem linku: http://dev.mysql.com/doc/refman/5.0/en/insert-delayed.html

Pozz  B-)

holodoc

Praktično nažalost ova mogućnost se skoro pa i ne koristi iz razloga što se većina upita u savremenim sistemima bazira ili na skladištenim rutinama (procedurama) ili transakcijama gde odugovlačenje i nema nešto preterano velikog značaja. S druge strane DELAYED se izbegava i zbog toga što se u nekim slučajevima može iskoristiti za veoma živopisne napade na servere baze a i što u slučajevima velikih zaglušenja može da se stvori situacija da ne može baš da se kontroliše ša je "prošlo" a šta ne kada se pokuša "debugovanje" kvara.

Daklem... Ne preporučujem upotrebu odloženih upita za bilo šta osim za igranje jer stvarno ima dosta razloga zbog čega ih treba izbegavati...
<?php
abstract class Ignorance extends Stupidity implements Unavoidable 
    private function 
__construct(){
        
parent::__destruct();
    }; 

// EOF -> life.php

Marko Аcović

Svaki dan nesto novo naucim :). Hvala za ovo upozorenje vezano za zakasnjeni insert :). Kad si vec spomenuo skladisne procedure (stored procedures), bilo bi dobro da se pokrene i ta tema. Ljudi uglavnom poznaju sve osnovne upite, ali kad je optimizacija u pitanju, malo njih zna da "natera" bazu brzo i pouzdano da radi. Licno, nisam radio nikad sa skladisnim procedurama. Mislim da bi iz ove diskusije svi po nesto naucili a to je i cilj, zar ne? :)