Mysql Table Partition
Büyük bir tabloyu herhangi bir kolondaki değerlere göre parçalara bölmeye table partition denir.Table parititon da datalar fiziksel olarak farklı dosyalarda tutulur.Hatta farklı disklerde tutmasanşımız da vardır.Bu özelliği Mysql 5.1 versiyonu ile kazanmıştır.SHOW VARIABLES LIKE ‘%partition%’;
Komut satırını kullanarak da kullandığınız Mysql sürümünün partitioning özelliğinesahip olup olmadığı anlarsınız. Partition özelliği, hem Myisam table enginedehem de innodb table enginede kullanılabilir.Table Partitionun 4 çeşit yapısı mevcuttur.
RANGE PartitioningLIST PartitioningHASH PartitioningKEY Partitioning
RANGE Partitioning:Aralığa göre bölümleme de diyebiliriz. En yaygın kullanılan modeldir.
Bir kolondaki değere göre belli aralıklarla parçalara ayırma.LIST Partitioning: Range partitiona benzemekle beraber en büyük farkı belli bir kolondaki
değerleri net olarak seçerek parçalara ayırma. Örnek verecek olursak,sehirler diye bir tablomuz olduğunu düşünün ve bu tabloda plaka kodu diye birkolonumuzun olduğunu varsayalım.PARTITION BY LIST(plaka_kodu) (-> PARTITION p0 VALUES IN (34),-> PARTITION p1 VALUES IN (44,23,35),…-> );
Burada 34(istanbul) plaka kodu olanları p0 diye bir bölümün içine, 44,23,35(malatya,elazığ,izmit)plaka kodu olanları ise p1 bölümünün içine atmış olduk.HASH Partitioning:Btree yerine, hash mantığına göre dataların tutulduğu partitioning yöntemidir.
Ve bir kolondaki değere matematiksel fonksiyon uygulandıktan sonra dönen tamsayı değerine göredataları hashing mantığında indexleyen ve parçalara bölen yapıdır.KEY Partitioning: Hash partitioninge benzer ve hash algoritmasını kullanılır. Tabloda key olarak
tanımladığımız kolonlar için uygulanır.(primary key,uniq key…)Şimdiye kadar Mysql table partition ile ilgili bir fikir edinmiş olduk.Bir sonraki yayınlayacağım Mysql Table Partition 2 adlı makalede de bol bol örneklerle konuyu anlamış olacağız.Tayfur BÖLERDatabase Administrator