ساختار فيزيكي داده ها در اسكيوال سرور (قسمت اول)

در اسكيوال سرور ديتا ها داخل فايلها سازمان يافته اند . زماني كه ما يك ديتابيس ميسازيم نام و مكان اين فايل ها رو مشخص ميكنيم(لاگ فايل و ديتا فايل).براي ساختن ديتابيس حداقل به يك لاگ فايل و ديتا فايل نياز داريم.

ديتا فايل:مقادير ديتا ,ايندكس ها و حتي SP و توابع در اين فايل ذخيره ميشوند.

لاگ فايل:تمام تغييرات در  ديتابيس بصورت write-ahead(يعني هر تغيير در ديتابيس اول در لاگ ثبت شود) در لاگ فايل ثبت ميشوند.

براي مكانيابي سريع داده ها اين مقادير ديتا بايد به يك روشي سازماندهي شوند كه ; موتور ديتاي (Data Engine) اسكيوال سرور دسترسي كامل به محل قرارگيري هر ديتا داشته باشد.اسكيوال سرور با شازماندهي ديتا ها در ديتاپيج(به حجم 8 كيلوبايت) به اين مهم دست ميابد.هر ديتاپيج با هدرهاي 96بايتي شروع ميشوند(كه شامل اطلاعاتي از قبيل شماره صفحه , نوع صفحه ,مقدارفضاي خالي در صفحه و…است).

رديف هاي داده بصورت سريالي بعد از هدر در ديتاپيج ها قرار ميگيرند.يك جدول رديف آفست (row offset) در انتهاي هر صفحه قرار ميگره و در اين جدول به ازاي هر رديف ديتا يك رديف داريم (كه ترتيب قرار گرفتن آنها برعكس ترتيب رديف هاي ديتا است).

نظرات

پست‌های معروف از این وبلاگ

lnav ابزاری بسیار کاربردی برای پیمایش لاگ ها در لینوکس و البته مک

ساختن ایمیج های داکری به کمک BuildKit - بخش دوم

ساختن ایمیج های داکری به کمک BuildKit - بخش اول