Partisi memungkinkan untuk menyimpan lebih banyak data dalam satu meja daripada
yang dapat diselenggarakan pada disk tunggal atau berkas partisi sistem.
b.
Data-data yang kehilangan kegunaannya sering dapat dengan mudah dihapus dari tabel
dipartisi dengan menjatuhkan partisi (atau partisi) yang hanya berisi data tersebut. Sebaliknya,
proses penambahan data baru dapat di beberapa kasus sangat difasilitasi dengan menambahkan
satu atau lebih partisi baru untuk menyimpan data yang khusus.
c.
Beberapa pertanyaan dapat sangat dioptimalkan dalam kebajikan fakta bahwa data
memenuhi klausa WHERE yang diberikan dapat disimpan hanya pada satu atau lebih partisi,
yang secara otomatis tidak termasuk partisi yang tersisa dari pencarian. Karena partisi dapat
diubah setelah tabel partisi telah dibuat, Anda dapat mengatur ulang data Anda untuk
meningkatkan permintaan sering yang tidak mungkin telah sering digunakan ketika skema partisi
pertama kali didirikan. Kemampuan untuk mengecualikan partisi non-pencocokan (dan dengan
demikian setiap baris mengandung) adalah sering disebut sebagai pemangkasan partisi, dan
dilaksanakan di MySQL.
Manfaat lain biasanya berhubungan dengan partisi termasuk yang di daftar berikut. Fiturfitur ini tidak saat ini diterapkan di MySQL Partisi, tetapi tinggi pada daftar prioritas.
a.
Pertanyaan yang melibatkan fungsi agregat seperti SUM() dan COUNT() dapat dengan
Mencapai throughput yang lebih besar permintaan dalam kebajikan menyebarkan data
JENIS-JENIS PARTISI
Ada empat tipe partition yang didukung oleh MySQL, berikut adalah deskripsi dari
keempat tipe tersebut:
A.
RANGE partitioning
Tabel yang dipartisi menggunakan range dipartisi dimana setiap partisinya memiliki row yang
mengandung variabel yang berada pada rentang nilai tertentu. Rentang nilai (range) dapat
kontinu tetapi tidak overlap dan didefinisikan melalui operator VALUES LESS THAN.
Partisi jenis ini akan berguna pada kondisi sebagai berikut:
jika kita ingin menghapus data lama, terutama untuk data yang besar, kita dapat melakukan
penghapusan ataupun perubahan secara efisien, contoh: DELETE FROM employees WHERE
YEAR(separated) <= 1990;.
jika kita akan sering menjalan query yang bergantung pada kolom yang dipartisi.
Partisi Range, adalah membuat partisi berdasarkan sebuah range, misalkan berdasarkan tanggal,
sebuah nilai, contoh nya seperti di bawah ini
CREATE TABLE tbl_penjualan (
B.
LIST partitioning
Pada list partitioning, setiap partisi didefinisikan dan diklasifikasikan berdasarkan
keanggotaan sebuah nilai suatu kolom terhadap suatu daftar nilai. Partisi dilakukan oleh perintah
PARTITION BY LIST(expr) di mana expr adalah nama kolom yang hendak dijadikan dasar
partisi dan setiap partisi didefinisikan melalui perintah VALUES IN (value_list) di mana
value_list adalah daftar bilangan bulat yang dipisahkan oleh koma.
Partisi List, adalah membuat partisi berdasarkan kondisi dari sebuah nilai yang
nilainya cocok dengan yang sudah di tentukan, contohnya seperti dibawah ini.
CREATE TABLE tbl_pegawai (
kode_pegawai VARCHAR(30),
kode_golongan INT,
nama_lengkap VARCHAR(255)
)
PARTITION BY LIST(kode_golongan) (
PARTITION p0 VALUES IN (1, 2, 3),
PARTITION p1 VALUES IN (4, 5, 6)
);
contoh diatas membuat partisi berdasarkan golongan pegawai, jadi pegawai dengan
golongan 1,2 dan 3 akan masuk ke partisi p0 sedangkan karyawan dengangolongan 4,5 dan 6
akan masuk ke partisi p1.
C.
HASH partitioning
Partisi dengan hash dilakukan untuk menjamin pendistribusian yang adil (seragam) pada
setiap data yang dimasukkan. Dengan partisi jenis ini, kita tidak perlu mendefinisikan
keanggotaan setiap partisi. Kita hanya perlu menspesifikasi suatu ekspresi yang memiliki input
suatu nilai kolom dan mempunyai output nomor partisi dari data tersebut. MySQL juga
mendukung suatu varian dari hash partitioning yaitu LINEAR HASH partitioning.
Partisi Hash, adalah membuat partisi berdasarkan sebuah kolom yg sudah ditentukan
dengan pembagian segmen nya diatur oleh MySQL, contohnya seperti dibawah ini.
CREATE TABLE tbl_pegawai (
kode_pegawai VARCHAR(30),
kode_golongan INT,
nama_lengkap VARCHAR(255)
)
D.
KEY partitioning
Partisi dengan key memiliki prinsip yang hampir sama dengan hash partitioning. Yang
menjadi perbedaan adalah fungsi hashing untuk partisi jenis ini dibuat langsung oleh server
MySQL dengan fungsi MD5() pada MySQL Clusters. Untuk storage engine yang lain, server
telah mengembangkan fungsi yang menerapkan algoritma yang hampir sama bernama
PASSWORD().
Partisi Key, adalah membuat partisi berdasarkan sebuah key dari tabel, contoh nya
seperti dibawah ini.
CREATE TABLE tbl_nama (
id INT NOT NULL PRIMARY KEY,
nama_lengkap VARCHAR(255)
)
PARTITION BY KEY()
PARTITIONS 2;
Contoh diatas membuat partisi berdasarkan primary key yang bernama id, jadi
data dari tbl_nama akan di pecah menjadi 2 partisi, dan yang mengatur sebuah data
masuk kepartisi yang mana, diatur otomatis oleh MySQ. Misalkan saya mempunyai tabel seperti
dibawah ini..
Untuk melihat partition dari tabel, bisa dengan cara di bawah ini
explain partitions select * from anggota;
2.
Untuk melihat sebuah data berada di partisi yang mana, bisa dengan cara explain partitions
select * from anggota where username='50000' ; Membuat benchmark antara tabel yang tidak di
partisi, dengan tabel yang di partisi dengan KEY, dan tabel yang di partisi dengan RANGE, di
bawah ini adalah struktur tabel nya, jumlah data untuk ekperimen ini sebanyak 100.000 record.
PRIMARY KEY(username);
Ternyata yang terlama adalah tabel yang menggunkan partisi KEY (0.20 sec) dan yang
tercepat adalah tabel yang menggunakan partisi RANGE (0.07)
tergantung. Suatu aplikasi sistem informasi manajemen tidak ada gunanya jika tidak mempunyai
data yang lengkap, demikian juga sebaliknya jika punya data tetapi tidak mempunyai aplikasi
yang digunakan untuk mengelolanya sehingga tidak dapat dihasilkan suatu laporan, statistik atau
pun informasi.
1.
Backup Data
Backup data merupakan salah satu kegiatan yang harus dilakukan oleh pengelola
database untuk melakukan penyalinan sistem, data dan aplikasi. Backup data harus dilakukan
untuk menjaga jangan sampai terjadi kerusakan sistem dari luar ataupun dari dalam sistem, yang
disengaja atau pun tidak disengaja.
Proses backup data dilakukan secara rutin sesuai dengan jadwal yang telah ditentukan,
jika dimisalkan pada sebuah perusahaan memiliki 1 database yang melayani 100 transaksi
perhari bisa kita bayangkan berapa banyak data yang terkumpul dalam 1 bulan, dan jika terjadi
kerusakan system maka data yang begitu banyak akan hilang atau akan menjadi pekerjaan input
data baru yang membuang buang waktu, dengan adanya proses backup data kejadian tersebut
bisa dihindari, misalnya secara rutin administrator database melakukan penyimpanan data setiap
minggu sehingga jika pada minggu ketiga hari kedua terjadi crash system atau kerusakan system
yang terjadi akibat gangguan system atau factor gangguan cuaca seperti gempa, banjir dan tanah
longsor yang merusak data secara fisik. Maka data yang hilang hanya 2 hari, sehingga total data
yang hilang adalah 200 transaksi, dari ilustrasi diatas kita bisa mengetahui betapa pentingnya
proses backup data untuk daur hidup suatu system database.
2.
Restore Data
Restore adalah proses mengembalikan backup ke dalam sistem. Restore dilakukan untuk
mengembalikan keadaan sistem kembali pada keadaan semula, keadaan terakhir pada saat
operasional, sebelum terjadi kerusakan sistem. Pada proses ini akan dilakukan pengembalian
data baik struktur maupun isi dari database, secara teori proses ini adalah proses minimum
pengembalian system tergantung dari waktu scheduling yang menjadi dasar proses backup, jika
waktu scheduling dijadwalkan terlalu lama maka akan banyak data nya hilang.
3.
4.
Backup dilakukan melalui server MySQL untuk mengambil struktur dan informasi data.
Backup berjalan lebih lambat karena server harus mengakses informasi data dan
mengirimkannya dalam bentuk logika pada file backup.
c.
Output bisa lebih besar dari pada bentuk fisik, misalkan data yang disimpan 5 MB dalam
bentuk file sql maka pada saat recovery akan terjadi kehabisan memori karena prosesnya akan
menghabiskan banyak memori untuk mengembalikan dalam bentuk semula.
d.
e.
f.
Data disimpan dalam bentuk logika yang merupakan bahasa DDL dan DML.
g.
h.
Program untuk backup digunakan mysqldump.exe yang memanggil file dikeluarkan dalam
bentuk logika file, seperti tsiswa.sql
i.
Untuk mengeluarkan data dalam bentuk file lain bisa digunakan perintah : SELECT ..INTO
OUTFILE
Backup terdiri dari salinan file dan database, ini adalah salinan dari semua bagian direktori
MySQL, data dari table memori tidak disampan pada disk.
2.
Backup data secara fisik lebih cepat karena tidak melakukan memrosesan logika, hanya
pengcopian secara fisik.
3.
4.
Sebagai tambahan dari database, backup dapat meliputi file manapun yang terdiri dari file
MYi, MYD dan FRM.
Lebih sedikit mengganggu klien lain karena dapat menggunakan mysql server tanpa harus
menghentikan pekerjaan selama proses backup.
b.
Backup data hanya dilakukan pada data yang tidak sedang terlibat dalam transaksi.
Metoda Backup Offline mempunyai karakteristik :
a.
Mempengarui klien yang kurang baik sebab server tidak berjalan selama proses berlangsung.
b.
Backup lebih sederhana memeriksa prosedur sebab tidak ada kemungkinan gangguan campur
tangan dari aktifitas klien.
Mysqldump dapat menghubungkan ke server remote atau local. Karena output SQL (perintah
create dan insert) local atau remote dapat diselesaikan dan degenerate dari client.
b.
c.
Select into outfile dapat diaktifkan dari satu host remote dari client, tetapi field output
diciptakan pada host server.
d.
Backup fisik secara khas diaktifkan pada server mysql sedemikian hingga server dapat diambil
saat ofline, walaupun cara pengambilannya bisa dengan remote.
4. Snapshot Backup
Beberapa file system implementasi memungkinkan snapshot untuk diambil. Ini
menyeddiakan salinan logika menyangkut file system pada titik yang telah ditentukan waktunya,
tanpa keharusan untuk secara fisik mengcopy seluruh file system. MySQL sendiri tidak
menghasilkan kemampuan untuk mengambil file system snapshot. Itu tersedia melalui aplikasi
lain seperti veritas atau LVM.
Suatu backup penuh meliputi semua data yang diatur oleh suatu MySQL Server pada titik
ditentukan pada waktunya. Suatu incremental backup terdiri dari perubahan pada data sesuai
dengan log pada server.
8. Table Maintenance
Integritas data dapat disepakati jika table mengalami corrupt. My SQL menyediakan
program untuk memeriksa table dan perbaikan jika terdapat masalah yang ditemukan, program
ini biasa diterapkan pada table MyIsam.