MATERI 4 - MATERI PERFORMANCE

 Saya, Marinda Cahya P, dari Kelas 2B dengan nomor absen 16, menulis materi ini sebagai rangkuman dari Praktikum Instalasi dan Konfigurasi Server Database yang dilaksanakan pada tanggal 05 Maret 2025. Topik yang dibahas dalam praktikum ini adalah Performance. Rangkuman ini disusun sebagai salah satu syarat untuk memenuhi tugas praktikum Mata Kuliah Sistem Manajemen Basis Data. Jika terdapat kesalahan dalam penulisan atau gambar yang kurang jelas, saya mohon maaf.


PERFORMANCE





Latar Belakang

Dalam sistem basis data, pengelolaan pengguna dan hak akses merupakan aspek krusial untuk Dalam sistem basis data, pemeliharaan database dan tabel sangat penting untuk memastikan integritas, keamanan, dan performa data. Salah satu teknik untuk mengoptimalkan akses ke data adalah dengan menggunakan index. Indeks dalam MySQL berperan penting dalam meningkatkan kecepatan pencarian data, terutama pada tabel dengan jumlah data yang besar.

Mengapa Pemeliharaan Basis Data dan Indexing Penting?

• Memastikan database tetap optimal dengan melakukan backup, pembersihan data, dan indexing.

• Mengurangi waktu pencarian data dengan menghindari full table scan.

• Meningkatkan performa query, terutama yang menggunakan klausa WHERE, JOIN, dan ORDER BY.

• Mengoptimalkan operasi CRUD (Create, Read, Update, Delete) dengan strategi indexing yang tepat.


Permasalahan yang diangkat

Adapun Permasalahan yang diangkat dalam tugas ini yakni :
  1. Bagaimana cara mengimpor dataset ke dalam MySQL?
  2. Bagaimana cara melakukan pemeliharaan database dengan menambah dan memperbarui kolom dalam tabel?
  3. Bagaimana cara menggunakan indeks untuk meningkatkan performa database?
  4. Bagaimana cara menguji efektivitas indeks dalam mempercepat query?

Skenario aktivitas

Dalam tugas ini, dilakukan beberapa tahapan:
  1. Mengimpor dataset ke dalam MySQL menggunakan perintah SOURCE.
  2. Menambahkan dan memperbarui kolom pada tabel untuk memastikan data tersimpan dengan baik.
  3. Membuat indeks untuk meningkatkan performa database.
  4. Menguji efektivitas indeks menggunakan EXPLAIN sebelum dan setelah menambahkan indeks.

Pembahasan (Latihan Soal)

1. Lakukan Import data employee;

  • Download dan extrak dataset employee pada folder
  • Jangan lupa, tempat menyimpan file dataset.
  • Lakukan import data dengan menggunakan script : source employee.sql
  • Tunggu sampai import sampai selesai, dan sampai record employee : 300024
  • Setelah selesai, maka nanti pada database, akan tampak sebagai berikut:


2. Latihan Soal
  • Lakukan semua tahapan diatas, dan jalankan pada database anda. Tambahkan  screenshot hasil dari setiap Langkah yang anda lakukan.
  • Tambahkan kolom nama departemen pada table dept_manager. Dan  lakukan update terhadap kolom tersebut. Tambahkan screenshot hasilnya:
Sebelum (Tambahkan kolom nama departemen pada table dept_manager.)
SELECT * FROM dept_manager;

Setelah (Tambahkan kolom nama departemen pada table dept_manager.):
ALTER TABLE dept_manager ADD COLUMN dept_name VARCHAR(40) NOT NULL;

ALTER TABLE dept_manager ADD COLUMN dept_name
VARCHAR(40) NOT NULL;

  • Tambahkan kolom nama departemen pada table dept_emp. Dan lakukan update terhadap kolom tersebut. Tambahkan screenshot hasilnya
ALTER TABLE dept_emp ADD COLUMN dept_name
VARCHAR(40) NOT NULL;

UPDATE dept_emp de
JOIN department d ON de.dept_no = d.dept_no
SET de.dept_name = d.dept_name;
Hasil setelah di update:
  • Buat query untuk menampilkan gaji yang tertinggi pada departemen d006. Siapa Namanya?
SELECT e.first_name, e.last_name, s.amount
FROM employee e
JOIN salary s ON e.emp_no = s.emp_no
JOIN dept_emp de ON e.emp_no = de.emp_no
WHERE de.dept_no = 'd006'
ORDER BY s.amount DESC
LIMIT 1;
  • Dari database employe yang sudah diimport, tambahkan kolom umur pada table employee. Kemudian lakukan update terhadap kolom umur tersbut. Nilai umur, dhitung dari tanggal lahir s.d sekarang. Tambahkan screenshot hasilnya
Tambah kolom umur pada table employee
ALTER TABLE employee ADD COLUMN umur INT;

Lakukan update terhadap kolom tersebut
UPDATE employee
SET umur = TIMESTAMPDIFF(YEAR, birth_date,
CURDATE());



  • Tambahkan masing-masing jenis index diatas composite index dan foreign key index pada table employee
Tambahkan masing-masing jenis index diatas composite index
CREATE INDEX idx_name ON employee(first_name, last_name);

dan foreign key index pada table employee
ALTER TABLE dept_manager ADD FOREIGN KEY
(emp_no) REFERENCES employee(emp_no);
ALTER TABLE dept_emp ADD FOREIGN KEY (emp_no)
REFERENCES employee(emp_no);
ALTER TABLE salary ADD FOREIGN KEY (emp_no)
REFERENCES employee(emp_no);
ALTER TABLE title ADD FOREIGN KEY (emp_no)
REFERENCES employee(emp_no);


  • Lakukan pengujian terhadap query berikut, apakah sudah mengakses index atau belum.
EXPLAIN SELECT * FROM employee
WHERE first_name = 'Georgi'


  • Lakukan pengujian dari query berikut. Apakah ada perbedaan sebelum dan sesudah ditambahkan index.
Query untuk menguji:
SELECT * FROM employee
WHERE first_name = 'Georgi'
AND last_name = 'Bahr'

  • Cara menguji,
    • Jalankan query diatas sebanyak 10x. catet waktunya setiap kali dijalankan
    • Buat index composite yang bersesuaian dengan query diatas.
    • Jalankan query diatas sebanyak 10x. catet waktunya setiap kali dijalankan
    • Ambil rata2 sebelum dan sesudah
    • Tulis kesimpulanya.

Berdasarkan hasil pengujian, rata-rata waktu eksekusi sebelum indexing adalah 0.003 sec, dan setelah
indexing tetap 0.003 sec. Ini menunjukkan bahwa penambahan index composite pada kolom first_name
dan last_name tidak memberikan peningkatan performa yang signifikan dalam query ini.

Kesimpulan

  • Pemeliharaan basis data sangat penting untuk memastikan data tetap terstruktur dengan baik.
  • Penggunaan indeks dapat mempercepat query, terutama untuk dataset besar.
  • Pengujian dengan EXPLAIN membantu dalam memahami efektivitas indeks yang digunakan.
  • Indeks tidak selalu meningkatkan performa jika query yang digunakan tidak optimal.
  • Composite index lebih efektif jika query benar-benar memanfaatkan kombinasi kolom yang diindeks. Dengan strategi pemeliharaan database dan penggunaan indeks yang tepat, sistem basis data akan memiliki kinerja lebih baik, waktu eksekusi query lebih cepat, dan beban server lebih ringan.

Referensi



Komentar

Postingan populer dari blog ini

MATERI 5 - OPTIMASI DATABASE , DAN PARTISI TABEL

MATERI 2 - INSTALASI DAN KONFIGURASI SERVER DATABASE

MATERI 6 - BOTTLENECK PADA MYSQL