2. Индекстеу
Мәліметтер қорымен жұмыс жасау кезінде туындайтын негізгі міндеттердің бірі - іздеу тапсырмасы. Сонымен бірге, мәліметтер базасындағы ақпарат, әдетте, көп нәрсені қамтитындықтан, бағдарламашылар алдында жай іздеу ғана емес, тиімді іздеу міндеті тұр, яғни. салыстырмалы түрде қысқа мерзімде және жеткілікті дәлдікпен іздеу.
Ол үшін (сұраныстың өнімділігін оңтайландыру үшін) кестенің кейбір өрістері индекстелген. Индекстерді пайдалану бір бағанның мәні көрсетілген жолдарды жылдам табуға пайдалы. Индекссіз кесте кесте бойынша бірінші жазбадан бастап сәйкес жолдар табылғанға дейін оқылады. Үстел неғұрлым үлкен болса, үстеме шығындар соғұрлым көп болады. Егер кестеде қарастырылып отырған бағандар бойынша индекс болса, мәліметтер базасы барлық деректерге қарамай, деректер файлының ортасында іздеу үшін орынды тез анықтай алады. Себебі дерекқор индекстелген өрістерді олардың жадын тезірек табу үшін жадқа жақындатады. 1000 қатарлы кесте үшін бұл барлық жазбаларды қайталаудан кем дегенде 100 есе жылдам болады. Алайда, сіз 1000 жолдың барлығына қол жеткізуіңіз керек болған жағдайда, дәйекті оқулар жылдамырақ болады, өйткені бұл диск іздеу операцияларын қажет етпейді. Сондықтан кейде индекстер тек кедергі болады. Мысалы, егер мәліметтердің көп мөлшері кестеге көшірілсе, онда ешқандай индекс болмағаны дұрыс. Алайда, кейбір жағдайларда бірден бірнеше индекстерді қолдану қажет (мысалы, жиі қолданылатын кестелерге қатысты сұраныстарды өңдеу үшін).
Егер Mysql туралы айтатын болсақ, онда индекстердің үш түрі бар: PRIMARY, UNIQUE, INDEX, және кілт сөзі (KEY) индекс (INDEX) сөзінің синонимі ретінде қолданылады. Барлық индекстер жадыда В ағаштары ретінде сақталады.
PRIMARY - бұл индекстелген барлық өрістер бос мәнге ие бола алмайтын шектеулі бірегей индекс (кілт) (яғни олар NULL ЕМЕС). Кестеде тек бір ғана негізгі индекс болуы мүмкін, бірақ бірнеше өрістен тұрады.
UNIQUE - тек ерекше мәндерге ие өрістерді көрсететін кілт (индекс).
INDEX - тұрақты индекс (жоғарыда сипатталғандай). Mysql-де, сонымен қатар, жол өрістерін жолдың басынан бастап берілген таңбалар саны бойынша индекстеуге болады.
Достарыңызбен бөлісу: |