Langsung ke konten utama

Tips Optimasi database MySQL

 #copass

Tips Optimasi dan Mengontrol MySQL

Oleh Adi Sumaryadi pada Senin, 02 Februari 2009 06:41 WIB

Tips Optimasi dan Mengontrol MySQL

Buat anda yang baru saja mengenal database server jenis MySQL dan melakukan programming dengan sedikit data ataupun mempunyai pangakses sedikit tidak terlalu bermasalah dengan load server yang makin hari semakin berat. Saya pernah mengalami server hang karena kesalahan query yang melakukan join dua tabel yang masing-masing mempunyai record lebih dari 100 ribu record berisi postingan blog berbentuk text. Kejadian itu hingga menyebabkan server hang walaupun kondisi server masih terbilang bagus. Waktu itu saya menggunakan server bersistem operasi Solaris dengan memori 4 GB. Tapi tetap saja locked.

Saya coba evaluasi beberapa query dengan menginstall mtop terlebih dahulu, mungkin buat anda pengguna hosting akan kesulitan untuk menggunakan mtop, tapi coba saja yang versi webnya. dengan mtop saya bisa melakukan control untuk query yang membutuhkan resources yang sangat besar. bahkan saya bisa melihat query mana yang harus diperbaiki.

Setelah dievaluasi maka munculah beberapa tips yang bisa digunakan antara lain:

1. Lakukan konfigurasi maksimal pada my.cf, tentu cara ini hanya bisa dilakukan oleh anda yang mempunyai server sendiri.

2. Sebisa mungkin hindari join table, apalagi yang datanya sama-sama besar. Untuk join tabel sebaiknya gunakan inner join daripada left join atau right join.

3. Check indek-indek di tabel anda terutama untuk field-field yang sering di join. Secara default hal ini sudah dilakukan saat anda membuat primary key dan foreign key. Jadi anda jangan lupa untuk memasang primary dan foreign key di tabel anda.

4. Gunakan koneksi yang terus menerus, dengan kata lain jangan melakukan buka dan tutup konek kedalam mysql. hal ini justru akan semakin berat

5. Hindari penggunakan asterik atau bintang seperti select * from tbl_contoh, cara ini memang mudah dilakukan tapi jangan salah dengan melakukannya akan membuat database anda pusing untuk menampilkan data, jadi gunakan field yang memang benar-benar dibutuhkan misalkan select id,nama from tbl_contoh.

6. Lakukan clear memory dengan menambahkan script mysql_free_result($query) setelah melakukan query, cara ini cukup ampuh untuk mengurangi load server dan memori.

7. Pisahkan tabel yang sering sekali dilakukan update, misalkan saya mempunyai tabel member yang beranggotakan 100 ribu orang, untuk membuat statistik untuk member maka kita seharusnya membuat tabel statistik member yang lebih sederhana dan updating data lastlogin atau berapa kali login dilakukan di tabel statistik

8. Lakukan backup secara berkala, saya termasuk orang yang ceroboh untuk masalah ini dan beberapa kali melakukan hal yang sama, jujur dari tahun 2003 saya sudah 2 kali menangis akibat kehilangan ribuan data mysql yang sangat penting. Saat ini saya gunakan mirroring dan replikasi mysql ke server lain supaya lebih aman.

Inti dari semuanya adalah saya mengajak anda semua jangan malas untuk menghindari  * pada query atau menyisipkan msql_free_result di akhir query. karena semuanya sangat berpengaruh.


https://www.adisumaryadi.com/tutorial/read/database-tutorial/113/tips-optimasi-dan-mengontrol-mysql

Komentar

Postingan populer dari blog ini

CREATE CROSS TAB QUERY IN MYSQL

MySQL Multi-Aggregated Rows in Crosstab Queries MySQL’s crosstabs contain aggregate functions on two or more fields, presented in a tabular format. In a multi-aggregate crosstab query, two different functions can be applied to the same field or the same function can be applied to multiple fields on the same (row or column) axis. Rob Gravelle shows you how to apply two different functions to the same field in order to create grouping levels in the row axis. Today’s topic of discussion is crosstabs, which contain multiple aggregate functions in the row axis of a tabular resultset. Recall from the the  All About the Crosstab Query  article that an aggregate function is one that summarizes a group of related data in some way. Examples of aggregate functions include COUNT, SUM, AVG, MIN, and MAX. In a multi-aggregate crosstab query, two different functions can be applied to the same field or the same function can be applied to two or more fields. Today we’ll create a query...

Mysql Import data from CSV File

  Microsoft Windows [Version 10.0.15063] (c) 2017 Microsoft Corporation. All rights reserved. C:\Users\PSI011>cd C:\xampp\mysql\bin C:\xampp\mysql\bin> mysqld 2017-08-22 14:24:49 15428 [Note] mysqld (mysqld 10.1.25-MariaDB) starting as process 16352 ... C:\xampp\mysql\bin> mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 9 Server version: 10.1.25-MariaDB mariadb.org binary distribution Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> use pkh; Database changed MariaDB [pkh]> LOAD DATA LOCAL INFILE 'D:/2017/PKH_FOR_BPKP/PKH_FOR_BPKP_01.csv' -> INTO TABLE pkh_bpkp -> FIELDS TERMINATED BY ',' -> OPTIONALLY ENCLOSED BY '"' -> ESCAPED BY '"' -> LINES TERMINATED BY '\n...

Pentaho Data Integration: Membuat Koneksi ke database MSSQL Server 2008 R2

Untuk terhubung ke database SQL Server langkah-langkah berikut harus dilakukan:   Download Driver Microsoft JDBC di https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11774  Tutup Spoon atau Kettle project  Unzip/extract paket dalam direktori temporer (bebas) Copy '<temp directory> \ sqljdbc_6.0\enu\auth\x64\ sqljdbc_auth.dll' ke 'C:\Program Files\Java\jre1.8.0_131' atau sesuaikan dengan path java runtime terinstall  Copy '<temp directory>\ sqljdbc_6.0\enu\jre8\sqljdbc42.jar' ke '<Kettle folder instalasi> \ data-integration \ lib' Buka Spoon atau Kettle project Uji koneksi dalam Spoon Hapus direktori temporer karena sudah tidak digunakan lagi Jika kita meng-upgrade Kettle, Java, JDBC Driver ke versi yang lebih tinggi, maka serangkaian langkah-langkah di atas harus diulang lagi.