به index گذاری که روی سطح لایه فیزیکی دیتابیس باشه اصطلاحاً پارتیشنبندی گفته میشود.
partition by range
به مثال زیر دقت کنید، در این مثال جدولی با پارتیشن بر مبنای فیلدهای id, age ساختهایم:
SQL> create table sal (id number,age number,name varchar2(20))
partition by range(id,age)
(partition s1 values less than (10,20) tablespace ts1,
partition s2 values less than(20,30) tablespace ts2,
partition s3 VALUES LESS THAN (MAXVALUE) tablespace ts3);
در ادامه گفتهایم که مقدارهای ورودی در پارتیشن s1 باید کمتر از 10,20 باشند و این پارتیشن در tablespace ts1 قرار دارد(یعنی idهای کمتر از ۱۰ و ageهای کمتر از ۲۰)
در ادامه پارتیشن s2 را داریم که مقدارهای کمتر از 20,30 را در خود میگیرد و در tablespace ts2 قرار دارد.
و در ادامه پارتیشن s3 را داریم که اگر رکوردی وارد شد که تو بازهی پارتیشنبندی ما نبود اون رکورد که حالا معلوم نیست بزرگه یا کوچیکه وارد tablespace ts3 شود.
نکته: اسم پارتیشنها زیاد اهمیتی برای ما ندارند.
نکته: اگر عملیات update انجام شود و مقدار عوض شود جابهجایی در پارتیشن نیز رخ خواهد داد.
نکته: تو partition by range بهتره که تمام فیلدها مشخص شوند، یعنی چیز نامعلومی که کاربر بخواد وارد کنه و به مشکل بخوره نباشه