Not signed in (Sign In)
    • CommentAuthorharie_aje
    • CommentTimeJul 22nd 2008
     
    halooo,,,
    gue mau tanya nih...ttg optimasi query
    fasilitas apa saja yang ada dimysq yg bisa dimanfaatin untuk optimasi query
    trus dimana aku bisa dapet referensinya???
    • CommentAuthoradmin
    • CommentTimeJul 22nd 2008 edited
     
    Ada beberapa langkah untuk meng-optimalisasikan query, salah satunya dengan membuat Index pada fieldname yang biasa digunakan pada "WHERE" dan "JOIN".

    Contoh:

    SELECT * FROM tabel_a INNER JOIN tabel_b ON tabel_a.id_s = tabel_b.id_s WHERE tabel_a.anggota_id = 2;

    Fieldname yang harus diindex adalah : tabel_a.id_s, tabel_b.id_s, dan tabel_a.anggota_id

    Kebanyakan fieldname yang di-index adalah yang memiliki tipe INT.

    Tipe VARCHAR juga dapat di-index, tp saya sarankan untuk membatasi karakter yang akan di-index.
    •  
      CommentAuthorscizo
    • CommentTimeJul 22nd 2008 edited
     

    Tambahan: Untuk mengetahui apakah sebuah Query yang menggunakan field-name ter-index berjalan dengan optimal, caranya: bisa menggunakan fungsi EXPLAIN

    Contoh Query1: mysql> EXPLAIN SELECT * FROM tabel_a WHERE YEAR(tabel_a.tanggal) >= 2000;
    Hasil:
    table: tabel_a
    type: ALL
    possible_keys: NULL
    key: NULL
    key_len: NULL
    ref: NULL
    rows: 867038
    Extra: Using where

    Contoh Query2: mysql> EXPLAIN SELECT * FROM tabel_a WHERE YEAR(tabel_a.tanggal) >= '2000-01-01';
    Hasil: table: tabel_a
    type: range
    possible_keys: tanggal key:
    tanggal key_len: 4
    ref: NULL
    rows: 70968
    Extra: Using where

    Pada percobaan Query1 dan Query2, terlihat hasilnya lebih cepat pada Query2.

    • CommentAuthorharie_aje
    • CommentTimeJul 26th 2008
     

    mas saya mau tanya lagi,,,saya punya query di my sql:

    select a.berita_id,a.judul,a.berita,coalesce(b.total_komentar,0)

    as total_komentar

    from berita a left join

    (select berita_id, count(komentar_id)as total_komentar

    from komentar group by berita_id)b

    using(berita_id)group by a.berita_id order by berita_id desc;

    query diatas kalo untuk dioraclenya gimana ,,soalnya aku coba error??

    trus aku juga mau tanya, komponen harga untuk eksekusi query itu apa saja....misalnya strorage cost,access cost dan ada ga referensi tang membahas tentang cara ngitung cost dari query yang akan dieksekusi???

    contohnya untuk query 1 costnya 50,,aku pengen tau 50 itu dapetnya dari mana????

    • CommentAuthoradmin
    • CommentTimeJul 27th 2008
     
    • CommentAuthorharie_aje
    • CommentTimeJul 28th 2008
     

    mas, bisa jelasin ga fungsi dari force index,analyze table dan straigh join yang ada pada mysql

    •  
      CommentAuthorscizo
    • CommentTimeJul 29th 2008