1 (edited by Ramex 2008-05-12 12:00:17)

Topic: "index" ir "primary_key"

norėjau paklaust, kokią prasmę turi parametrai "index" ir "primary key"? visad "primary key" naudoju id stulpeliui, nes be jo atrodo negalima "auto_increment" uždėt, bet apie "index" išvis neseniai sužinojau. kokių papildomų galimybių jie suteikia?
taip pat norėčiau sužinot kur galima rast slow_queries sarašą?

[EDITED]
Labai atsiprašau už "pirmlaikį" temos sukūrimą, jau šį tą sugaudžiau apie indeksus pasinaudojęs paieška. bet gal ką į temą pasakysit.

Su sąlyga, kad šūdo nebus...

Warning: count(): Parameter must be an array or an object that implements Countable in /home/pasokime/domains/mysql.lt/public_html/forumas/include/parser.php on line 820

Re: "index" ir "primary_key"

Dėl indexu mysql'ui nereikia kiekviena sykį dėl JOIN'ų ir WHERE užklasų skenuoti visos lentelės. O jeigu įrašai nesikartoja, ir uždėdi uniqe, dar ir apsisaugai nuo klaidų.

Re: "index" ir "primary_key"

PRIMARY KEY, UNIQUE, INDEX ir FULLTEXT visi yra Indeksai.

Indeksas yra specialiu formatu papildomai išsaugomi duomenys, kad tarp jų būtų galima greitai surasti norimą elementą. Realiai tai yra B-TREE medis saugomas atskirai nuo visų duomenų, ir MySQL serveris gavęs užklausą surasti tam tikrą įrašą pagal ID (ineksą) pirmiausia jį suranda toje specialioje struktūroje (medyje), nes joje paieška atliekama N kartų greičiau negu paprastai skanuojant duomenis. Suradus medyje elementą telieka pagal adresą iš duomenų failo nusiskaityti reikiamus duomenis.

Kaip ir minėjau visi minėti stulpelių tipai yra Indeksai. Jie šiek tiek skirasi:

INDEX yra standartinis indeksas, jo tipo stulpeliuose galima saugoti visokius duomenis (įskaitant ir NULL ir pasikartojančius;
UNIQUE yra papildytas tuo, kad elementai negali kartotis, t.y. uždėjus tokio tipo indeksą ant stulpelio galima apsisaugoti nuo duomenų korupcijos; reikia pridurti tik tai, kas MySQL'e NULL != NULL (NULL nelygus pačiam saug);
PRIMARY KEY, yra dar daugiau praplėstas indeksas, kuris neleižia laikyti NULL reikšmių;
FULLTEXT, ar specialiai padobulintas indeksas palengvinantis paiešką tarp tekstinių duomenų;

Gal ką ir praleidau, bet esmė tokia. Tiksliau viską galima sužinoti dokumentacijose, pvz.: Kaip MySQL'as naudoja ineksus - http://dev.mysql.com/doc/refman/4.1/en/ … dexes.html

Re: "index" ir "primary_key"

primary jungia ir unique :) tai reiskias kad primary kejus negali kartotis :)
del fulltext tai mhz, mysql kazkaip ne taip vistiek sukasi su juo :)