Tolong pilih kategori sesuai, jenis posting (diskusi atau bukan) dan sertakan tag/topik yang sesuai seperti komputer, java, php, mysql, dll. Promosi atau posting tidak pada tempatnya akan kami hapus!
- Bagi Anda yang ingin mendaftar, baca link berikut:
http://diskusiweb.com/discussion/50491/how-to-registrasi-diskusiweb-com-baca-ini-terlebih-dahulu
- Cara menyisipkan kode program supaya tampil rapi dan terformat dengan baik di diskusiweb.com: http://www.diskusiweb.com/discussion/50415/cara-menyisipkan-kode-program-di-diskusiweb-com
- Cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

Mengapa ketika menggunakan order by, waktu eksekusi jadi lambat?

View v_one

Query 1 : SELECT id FROM v_one LIMIT 2 : 52 ms

Query 2 : SELECT id FROM v_one ORDER BY id LIMIT 2 : 2413 ms

View v_two

Query 3 : SELECT id FROM v_two LIMIT 2 : 260 ms

Query 4 : SELECT id FROM v_two ORDER BY id LIMIT 2 : 260 ms

Mengapa pada view v_one, ketika menggunakan order by, perbedaanya waktu terlalu jauh?


Mohon pencerahannya

Tagged:

Comments

  • edited March 2016
    view ?
    itu mah sama aja elo pake subquery
    hindari selama elo bisa

    cuma query kaya gitu mah ndak perlu view



    kalo masalah beda waktu eksekusi sesama view

    bisa dari query di dalam view itu sendiri yg emang ndak di optimize
    misal pake subquery
    jadinya subquery yg di subquery

    atau masalah di table nya sendiri
    index elo ndak beres
  • edited March 2016
    query nya kompleks makanya aku pke view

    kayaknya bukan masalah itu
    soalnya di view v_two, itu juga menggunakan view dan ada sub query. perbedaan waktu nya sama

    kayaknya ini karena masalah index
    tapi yg aku bingung, pada field nya di order by, aku add index, tapi sama aja, gak ada perubahan
  • edited March 2016
    salah

    kalo kompleks justru ndak pake view
    karena itu jadinya subquery

    noh kalo ndak percaya subquery bikin lambat
    http://www.diskusiweb.com/discussion/46183/tanya-cara-mengubah-subquery-loading-query-lama/p1

    misal view isinya ini :
    SELECT * FROM table_x

    view elo query
    SELECT * FORM view_x

    itu sama saja dengan
    SELECT * FROM (SELECT * FROM table_x)

    itu subquery atau bukan ?

    tanpa view itu artinya elo sudah menghapus satu lapis subquery
  • edited March 2016
    mestinya kalo dah dikasih index pada field yg di order by, 
    waktu eksekusi query bisa lebih cepat daripada tidak dikasih index.

    1 catatan, penggunaan limit memang membatasi data yg ada, 
    tapi ketika query diberikan order by, maka sebenarnya semua data diurutkan.
    Tebakan gw total data sebenarnya di view 1 lebih banyak dari view 2 bila tanpa limit

    Btw, bener kata pak boo, kalo dah kompleks bgt malah mestinya hindari penggunaan view

    CMIIW >:D<
  • bener banget

    ini masalahnya karena ada subquery di dalam select
    saat aku hapus subquery itu dan jalankan query, itu cepat

    thanks masukan2nya :-bd
Sign In or Register to comment.