#database
#sql
#oracle
#index
خب توی این پست میخوایم با چند تا از اصطلاحهایی که توی دیتابیسهای sql ای به گوش میخوره مخصوصا indexها(با محوریت Oracle البته)، آشنا بشیم. از موارد ساده شروع میکنیم تا ...
توی دیتابیسهای sql، ما یه table داریم که توی اون table تعدادی column با type مشخص ایجاد میشه که میتونیم دادههامون رو به صورت rowدر اون table ذخیره کنیم. این مقدمه ریز رو گفتم تا بتونیم بهتر index رو تعریف کنیم. index یه ساختمان داده آپشنال هست که اگه بخوایم، میشه روی یک یا چند ستون از جدولا تعریف کرد. ما وقتی روی یکسری ستونها، index تعریف میکنیم، میتونیم با پرفورمنس بالایی، اون دیتاها رو از دیتابیس واکشی کنیم. تعریف index زمانی برای ما مفید میشه که برای یه کاربرد خاص، تعداد درخواستهای نسبتا زیادی بر روی یکسری دادهها داریم، در این صورت میتونیم سرعت کل برنامه رو به کمک indexها افزایش بدیم.
نکته قابل توجهش اینه که تعریف index ها کاملا مستقل از داده اصلی هست و صرفا با استفاده از ساختمانداده مناسب، دسترسی به دادههای index شده رو افزایش میده. گفتم ساختماندادههای مناسب، بخوام یه اشارهای بکنم، توی Oracle یکی از ساختمان دادههایی که برای این منظور استفاده میشه، B-Tree هست. (احتمالا جزو اون درختایی بوده که توی درس ساختمانداده خوندین و با خودتون گفتین خب به چه دردی میخوره🙂) همچنین متدهای Reverse key indexes، Bitmap indexes و Function-based indexes هم در Oracle قابل استفاده هستند که برای مطالعه بیشتر میتونین به این لینک یه سر بزنین:)
یکی دیگه از دلایلی که استفاده از indexباعث افزایش سرعت واکشی میشه، اینه که باعث میشه دسترسی کمتری به بلوکهای حافظه و I/O disk داشتهباشه و این دسترسی رو به لطف همون ساختماندادهها، به حداقل میرسونه.
در آخر هم درخواست ساختن index رو صرفا برای اینکه بفهمیم چقدر سادس(!) ببینیم:
و در نهایت:)
برای اینکه اطلاعات بیشتر درباره indexها و نوعهاش و چگونگی کارکردش بدونین خوندن بخش Indexes and Index-Organized Tables از این داکیومنت که مال Oracle هست پیشنهاد میشه:)
🔰مشورت من به کامپیوتری ها
@coaching_ce
#sql
#oracle
#index
خب توی این پست میخوایم با چند تا از اصطلاحهایی که توی دیتابیسهای sql ای به گوش میخوره مخصوصا indexها(با محوریت Oracle البته)، آشنا بشیم. از موارد ساده شروع میکنیم تا ...
توی دیتابیسهای sql، ما یه table داریم که توی اون table تعدادی column با type مشخص ایجاد میشه که میتونیم دادههامون رو به صورت rowدر اون table ذخیره کنیم. این مقدمه ریز رو گفتم تا بتونیم بهتر index رو تعریف کنیم. index یه ساختمان داده آپشنال هست که اگه بخوایم، میشه روی یک یا چند ستون از جدولا تعریف کرد. ما وقتی روی یکسری ستونها، index تعریف میکنیم، میتونیم با پرفورمنس بالایی، اون دیتاها رو از دیتابیس واکشی کنیم. تعریف index زمانی برای ما مفید میشه که برای یه کاربرد خاص، تعداد درخواستهای نسبتا زیادی بر روی یکسری دادهها داریم، در این صورت میتونیم سرعت کل برنامه رو به کمک indexها افزایش بدیم.
نکته قابل توجهش اینه که تعریف index ها کاملا مستقل از داده اصلی هست و صرفا با استفاده از ساختمانداده مناسب، دسترسی به دادههای index شده رو افزایش میده. گفتم ساختماندادههای مناسب، بخوام یه اشارهای بکنم، توی Oracle یکی از ساختمان دادههایی که برای این منظور استفاده میشه، B-Tree هست. (احتمالا جزو اون درختایی بوده که توی درس ساختمانداده خوندین و با خودتون گفتین خب به چه دردی میخوره🙂) همچنین متدهای Reverse key indexes، Bitmap indexes و Function-based indexes هم در Oracle قابل استفاده هستند که برای مطالعه بیشتر میتونین به این لینک یه سر بزنین:)
یکی دیگه از دلایلی که استفاده از indexباعث افزایش سرعت واکشی میشه، اینه که باعث میشه دسترسی کمتری به بلوکهای حافظه و I/O disk داشتهباشه و این دسترسی رو به لطف همون ساختماندادهها، به حداقل میرسونه.
در آخر هم درخواست ساختن index رو صرفا برای اینکه بفهمیم چقدر سادس(!) ببینیم:
CREATE INDEX index_name
ON table_name (column1, column2, ...columnN);
و در نهایت:)
برای اینکه اطلاعات بیشتر درباره indexها و نوعهاش و چگونگی کارکردش بدونین خوندن بخش Indexes and Index-Organized Tables از این داکیومنت که مال Oracle هست پیشنهاد میشه:)
🔰مشورت من به کامپیوتری ها
@coaching_ce
🥰2🔥1