Keresés

Új hozzászólás Aktív témák

  • VladimirR

    nagyúr

    válasz VladimirR #311 üzenetére

    meg egy kerdes:
    ha van ket tablam van-e kulonbseg sebessegben, memoriahasznalatban az alabbi ketto kozott:

    1:
    select id from tabla1 where name = 'nev';
    ezt bepakolom egy valtozoba
    select count( id ) from tabla2 where tid = valtozo;

    2:
    select count( id ) from tabla1 inner join tabla2 on tabla1.id = tabla2.tid where tabla1.id = 'nev';

    azert kerdezgetek ennyi hulyeseget, mert nem egy kimondott izomgep-re keszulok attenni az adatbazist, ahol szamitani fog, hogy igazan jol legyenek belove maga az adattarolas is es a lekerdezesek is


    segitsegeteket elore is koszonom

  • Jester01

    veterán

    válasz VladimirR #311 üzenetére

    egy up a kesonkeloknek
    :C


    mi a kulonbseg a varchar es a text adattipuxok kozott

    varchar -nak a rekordban van foglalva hely (a maximális hossznak), text esetén csak a hossza és egy pointer van eltárolva. Ez utóbbi egy külön területre mutat. A text ezért lassabb, de kevesebb helyet foglal.

    mi az az index prefix length

    Az index csak ennyi karaktert használ. Az olyan értékeket amik ezen hosszig megegyeznek azonosnak tekinti. A lekérdezéskor a látszólag egyező értékekre még egy szűrés fut.

    mi a kulonbseg szoveges (varchar, text) mezo eseteben a sima index es a fulltext index kozott?

    Fulltext indexben mindenféle vicces módon lehet keresni (MATCH ... AGAINST), sima indexben csak összehasonlítás van (kisebb-nagyobb-egyenlő).

    hogy jobb index-et kesziteni? melyiknek mik az elonyei, hatranyai?
    -a) alter table tablanev add index ( mezo1, mezo2 );
    -b) alter table tablanev add index ( mezo1 ).|. table tablanev add index ( mezo2 );


    Ez a két eset nem ekvivalens. Az első esetben mezo2-re nincs index (ha az adott adatbáziskezelő jobbról használja az összetett indexeket - ellenkező esetben mezo1-re nem lesz index). Ha mindig mind a két mezőre van szűrés, akkor az első módszer jobb lesz. Ha viszont a két mezőre külön-külön is akarsz keresni akkor a másodikra van szükséged. Plusz ha UNIQUE feltételed is van, akkor az első esetben a (mezo1, mezo2) pároknak kell egyedinek lenni, míg a másodikban a mezo1 és mezo2 értékeknek külön-külön.

    MOD: szóval az összetett indexet (az adatbáziskezelőtől függően jobbról vagy balról) tetszőleges hosszig lehet használni. Pl. a (mezo1, mezo2, mezo3) indexet lehet (mezo1), (mezo1, mezo2), (mezo1, mezo2, mezo3) indexként is használni.

    ha van ket tablam van-e kulonbseg sebessegben, memoriahasznalatban az alabbi ketto kozott:

    Ránézésre nincs (feltéve, hogy van index mind a 2 lekérdezéshez). De az első a biztosabb.

    Ha valahol hülyeséget írtam, javítsatok ki :B

    [Szerkesztve]

    [Szerkesztve]

    Jester

Új hozzászólás Aktív témák