Pemeliharaan basisdata, table & Penggunaan index dalam menjaga performa basisdata

 Latar Belakang

Dalam sistem basis data, pencarian data yang efisien sangat penting untuk menjaga performa. Tanpa penggunaan indeks yang tepat, query dapat memerlukan waktu eksekusi yang lama karena melakukan full table scan. Oleh karena itu, dilakukan simulasi penggunaan index dan pengujian performa untuk memahami dampaknya.

Permasalahan yang Diangkat

  1. Bagaimana cara mengimpor data ke dalam basis data dengan benar?

  2. Bagaimana cara menggunakan index untuk meningkatkan performa query?

  3. Apakah penambahan index berpengaruh pada efisiensi pencarian data?

  4. Bagaimana cara menambahkan atribut baru dan melakukan pembaruan nilai atribut berdasarkan data yang ada?

  5. Apakah ada perbedaan waktu eksekusi query sebelum dan sesudah menggunakan index?

Solusi dan Skenario Aktivitas

Berikut langkah-langkah yang dilakukan untuk menguji efektivitas index dalam basis data:

A. Import Data

  • Data diimpor dari dataset employee.sql.

  • Mengeksekusi script source employee.sql.

  • Memverifikasi tabel hasil impor: employee, departments, dept_manager, dept_emp, dan salaries.

B. Simulasi Penggunaan Index

  1. Menjalankan Query Tanpa Index

    SELECT * FROM employee WHERE first_name = 'Georgi';

    Analisis: Query ini melakukan full table scan karena belum ada index yang digunakan.

  2. Menambahkan Index

    ALTER TABLE employee ADD INDEX idx_full_name (first_name, last_name);

    Analisis: Index membantu dalam pencarian data berdasarkan first_name dan last_name.

  3. Menjalankan Query Setelah Index Ditambahkan

    EXPLAIN SELECT * FROM employee WHERE first_name = 'Georgi' AND last_name = 'Bahr';

    Analisis: Query EXPLAIN menunjukkan bahwa MySQL kini menggunakan index.

C. Penambahan Atribut Baru dan Update Data

  1. Menambahkan Kolom nama_departemen pada dept_manager dan dept_emp

    ALTER TABLE dept_manager ADD COLUMN nama_departemen VARCHAR(255);
    ALTER TABLE dept_emp ADD COLUMN nama_departemen VARCHAR(255);
    • Update nilai kolom berdasarkan tabel department.

    UPDATE dept_manager AS dm
    JOIN department AS dp ON dm.dept_no = dp.dept_no SET dm.nama_departemen = dp.dept_name;
  2. Menambahkan Kolom umur dan Menghitung Usia Karyawan

    ALTER TABLE employee ADD COLUMN umur INT;
    UPDATE employee SET umur = TIMESTAMPDIFF(YEAR, birth_date, CURDATE());

    Analisis: Umur dihitung berdasarkan selisih tahun dari birth_date dengan tanggal saat ini.

D. Pengujian Performa Index

  1. Query Sebelum Index Ditambahkan

    • Eksekusi sebanyak 10 kali.

    • Rata-rata waktu eksekusi: 0.0022 detik.

  2. Query Setelah Index Ditambahkan

    • Eksekusi sebanyak 10 kali.

    • Rata-rata waktu eksekusi: 0.0024 detik.

Analisis:

  • Penambahan index menunjukkan sedikit peningkatan waktu eksekusi.

  • Hal ini bisa terjadi karena MySQL harus memelihara index saat terjadi perubahan data.

  • Namun, pada dataset besar, penggunaan index akan lebih efektif dalam meningkatkan performa query.

Kesimpulan

  • Index membantu mempercepat pencarian data dengan mengurangi full table scan.

  • Penggunaan composite index dapat meningkatkan efisiensi dalam pencarian berbasis kombinasi kolom.

  • Penambahan atribut baru seperti umur dan nama departemen dapat memperkaya informasi dalam basis data.

  • Pada skala kecil, dampak index terhadap waktu eksekusi tidak terlalu signifikan, namun pada skala besar, manfaatnya lebih terlihat.

Bukti Pendukung 





Comments

Popular posts from this blog

Manajemen User, Role, dan Privilege dalam MySQL

Instalasi dan Konfigurasi Server Database

Optimasi Bottleneck Dalam Mysql