İçerikler :

Değerlere Göre List Partition Yapan Basit Bir.. Hash Partitioning Hash Partition Kullanan Basit Bir Örnek KEY Partitioning Key Partition Kullanan Basit Bir Örnek List Partitioning MySQL'in Desteklediği Partitioning Tipleri MySQL'in Partitioning Destekleyip Desteklemed.. MySQL Partitioning Partitioning İle İlgili Kısıtlar Range Partitioning SHOW PLUGINS ile Partitioning desteği olup ol.. Yıla Göre Range Partition Yapan Basit Bir Örn..

Bu Sayfayı Paylaş:

Kavram

MySQL Partitioning

Tanım: MySQL'de bir tabloyu satırlarını belirli kriterlere göre farklı dosya veya farklı konumlarda (ağ üzerinde başka bir sunucu) saklanmasını sağlayan özellik. MySQL 5.1 ve sonrası (MERGE, CSV gibi tablo tipleri hariç) sürümlerde desteklenmektedir. Bu yöntem özellikle büyük tabloları bölümlemek için kullanılır ve o bölüm için yapılan sorgularda performans kazancı sağlar

İpucu

MySQL'in Partitioning Destekleyip Desteklemediğinin Anlaşılması

MySQL sunucun partitioning destekleyip desteklemediğini anlamak için aşağıdaki yöntemler kullanılabilir:
  • SHOW PLUGINS: Bu komut çalıştırıldığında listede status değeri ACTIVE olarak gözükmelidir
  • SHOW VARIABLES LIKE '%partition%' : Bu sorgu ile have_partitioning değeri YES olarak görülmelidir


İpucu

SHOW PLUGINS ile Partitioning desteği olup olmadığı öğrenilebilir

MySQL üzerinde SHOW PLUGINS komutu çağrıldığında veritabanınızın partitioning desteği olup olmadığını öğrenilebilir. Eğer destek varsa


Name, Status, Type, Library, License
'partition', 'ACTIVE', 'STORAGE ENGINE', NULL, 'GPL'


şeklinde, listede Status değeri ACTIVE olarak gözükür

Veri

MySQL'in Desteklediği Partitioning Tipleri

MySQL'in desteklediği partition tipleri aşağıdaki gibidir:
  • Range Partitioning : Belirli aralık verilerek yapılır
  • List Partitioning : Değer listesi verilerek yapılır
  • Hash Partitioning : Mode değeri verilerek yapılır. (mod 3 ise 3 ayrı partition oluşur)
  • Key Partitioning : Anahtar alanlar kullanılır

Not : MySQL sadece horizontal partitioning'ı (yatay bölümleme) destekler, vertical partitioning (düşey bölümleme)

Kavram

Range Partitioning

Tanım: MySQL'de belirli aralıktaki değerlere göre yapılan horizontal partitioning (yatay bölümleme)

Kavram

List Partitioning

Tanım: MySQL'de belirli değerlere göre yapılan horizontal partitioning (yatay bölümleme)

Kavram

Hash Partitioning

Tanım: MySQL'de, bir sütunun int değeri (veya int üretebilecek şekilde fonksiyon ile çağrılmış hali için) için , mod alarak yapılan vertical partitioning (düşey bölümleme). Örneğin mod değeri 3 verilirse tüm kayıtlar 3 bölüme ayrılır. Örneğin bir tarih alanının yıl değeri için (YEAR(tarih) fonsiyonu bir tarihin yıl değerini verir) mod 3 değeri kullanılırsa, yıl değeri mod 3'e göre aynı olan satırlar aynı bölümde tutulurlar

Kavram

KEY Partitioning

Tanım: MySQL'de, tabloların key alanlarının (primary key veya unique key) kullanıldığı horizontal partitioning (yatay bölümleme)

Veri

Partitioning İle İlgili Kısıtlar

Partitioning için bazı kısıtlar bulunur : 
  • Partitioning expression'larında bit operatörleri ( |, &, ^, <<, >>) desteklenmemektedir
  • Partitioning tablolar foreign key desteklemez
  • Geçici tablolarda partitioning olamaz
  • Partitioning bulunan tablolar FULLTEXT desteklemez

Örnek

Yıla Göre Range Partition Yapan Basit Bir Örnek

Aşağıda yıla göre partition yapılan bir tablo yaratılmıştır :
CREATE TABLE Table1 (
    id INT NOT NULL,
	record_year DATE NOT NULL,
    info VARCHAR(100)
)
PARTITION BY RANGE ( record_year(separated) ) (
    PARTITION p0 VALUES LESS THAN (2013),
    PARTITION p1 VALUES LESS THAN (2012),
    PARTITION p2 VALUES LESS THAN (2011),
    PARTITION p3 VALUES LESS THAN MAXVALUE
);

Örnek

Değerlere Göre List Partition Yapan Basit Bir Örnek

Aşağıda tipe göre partition yapılan bir tablo yaratılmıştır :
CREATE TABLE Table1 (
    id INT NOT NULL,
	type INT NOT NULL,
    info VARCHAR(100)
)
PARTITION BY LIST(type) (
PARTITION p1 VALUES IN (1,2),
PARTITION p2 VALUES IN (3,4),
PARTITION p3 VALUES IN (5,6)
);

Örnek

Hash Partition Kullanan Basit Bir Örnek

Aşağıda yıl sütununu 10 moduna göre bölümleme yapan örnek görülmektedir :
CREATE TABLE table1(
id int not null,
eklenme_tarihi date not null)
PARTITION by hash(YEAR(eklenme_tarihi))
PARTITIONS 10;
eklenme_tarihi 2000 ise 1. partition, 2001 ise 2. partition, vb.. şeklinde kayıtlar bölümlenecektir

Örnek

Key Partition Kullanan Basit Bir Örnek

Aşağıda yıl sütununu 10 moduna göre bölümleme yapan örnek görülmektedir :
CREATE TABLE table1 (
id INT NOT NULL PRIMARY KEY,
name VARCHAR(20)
)
PARTITION BY KEY()
PARTITIONS 2;
yukarıda tablonun key alanına göre 2 partition oluşturulacaktır




Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir