Mysql terlihat lebih cepat daripada pilih

Tampilan hanyalah kueri SELECT apa pun yang telah diberi nama dan disimpan dalam database. Untuk alasan ini, suatu view kadang-kadang disebut query bernama atau query tersimpan. Untuk membuat tampilan, Anda menggunakan sintaks SQL

        CREATE OR REPLACE VIEW <view_name> AS
        SELECT <any valid select query>;
  • Kueri tampilan itu sendiri disimpan dalam database, tetapi sebenarnya tidak dijalankan hingga dipanggil dengan pernyataan SELECT lainnya. Karena alasan ini, tampilan tidak menggunakan ruang disk apa pun untuk penyimpanan data, dan tidak membuat salinan berlebihan dari data yang telah disimpan dalam tabel yang direferensikan (yang terkadang disebut tabel dasar tampilan)
  • Meskipun tidak diperlukan, banyak pengembang database mengidentifikasi tampilan dengan nama seperti v_Customers atau Customers_view. Ini tidak hanya menghindari konflik nama dengan tabel dasar, tetapi juga membantu dalam membaca kueri apa pun yang menggunakan tampilan
  • Kata kunci OR REPLACE dalam sintaks yang ditunjukkan di atas adalah opsional. Meskipun Anda tidak perlu menggunakannya saat pertama kali membuat tampilan, menyertakannya akan menimpa versi lama tampilan dengan yang terbaru, tanpa memberi Anda pesan kesalahan
  • Sintaks untuk menghapus tampilan dari skema Anda persis seperti yang Anda harapkan
  •         DROP VIEW <view_name>;
    _

    Menggunakan tampilan

    Nama tampilan dapat digunakan dengan cara yang persis sama seperti nama tabel dalam kueri SELECT apa pun. Setelah disimpan, tampilan dapat digunakan berulang kali, daripada menulis ulang kueri yang sama berkali-kali

  • Penggunaan view yang paling dasar adalah dengan hanya SELECT * darinya, tetapi ini juga dapat mewakili subquery yang telah ditulis sebelumnya atau cara yang disederhanakan untuk menulis bagian dari klausa FROM
  • Di banyak sistem, tampilan disimpan dalam bentuk yang telah dikompilasi sebelumnya. Ini mungkin menghemat waktu eksekusi untuk kueri, tetapi biasanya tidak cukup untuk diperhatikan oleh pengguna manusia
  • Salah satu penggunaan view yang paling penting adalah dalam sistem multi-pengguna yang besar, di mana tampilan memudahkan untuk mengontrol akses ke data untuk jenis pengguna yang berbeda. Sebagai contoh yang sangat sederhana, misalkan Anda memiliki tabel informasi karyawan pada skema Employees = {employeeID, empFName, empLName, empPhone, jobTitle, payRate, managerID}. Jelas, Anda tidak dapat membiarkan semua orang di perusahaan melihat semua informasi ini, apalagi mengubahnya
  • Administrator basis data (DBA) Anda dapat menentukan peran untuk mewakili grup pengguna yang berbeda, lalu memberikan keanggotaan dalam satu atau beberapa peran ke akun pengguna tertentu (skema). Pada gilirannya, Anda dapat memberikan izin tingkat tabel atau tingkat tampilan ke peran serta pengguna tertentu. Misalkan DBA telah menciptakan peran manajer dan penggajian untuk orang yang menempati posisi tersebut. Di Oracle®, ada juga pre-defined role bernama public, yang berarti setiap pengguna database
  • Anda dapat membuat tampilan terpisah bahkan hanya pada tabel Karyawan, dan mengontrol akses ke tampilan tersebut seperti ini
  •         CREATE VIEW phone_view AS
            SELECT empFName, empLName, empPhone FROM Employees;
            GRANT SELECT ON phone_view TO public;
    
            CREATE VIEW job_view AS
            SELECT employeeID, empFName, empLName, jobTitle, managerID FROM Employees;
            GRANT SELECT, UPDATE ON job_view TO managers;
    
            CREATE VIEW pay_view AS
            SELECT employeeID, empFName, empLName, payRate FROM Employees;
            GRANT SELECT, UPDATE ON pay_view TO payroll;
  • Hanya sedikit orang tepercaya yang memiliki hak istimewa SELECT, UPDATE, INSERT, dan DELETE di seluruh tabel dasar Karyawan;
  • Saat tampilan adalah target pernyataan UPDATE, nilai tabel dasar diubah. Anda tidak dapat mengubah nilai yang dihitung dalam tampilan, atau nilai apa pun dalam tampilan yang didasarkan pada kueri UNION. Anda juga dapat menggunakan tampilan sebagai target dari pernyataan INSERT atau DELETE, tunduk pada batasan integritas yang telah ditempatkan pada tabel dasar
  • Pandangan terwujud

    Terkadang, kecepatan eksekusi kueri sangat penting sehingga pengembang bersedia memperdagangkan peningkatan penggunaan ruang disk untuk respons yang lebih cepat, dengan membuat tampilan terwujud. Berbeda dengan tampilan yang dibahas di atas, tampilan terwujud memang membuat dan menyimpan tabel hasil terlebih dahulu, diisi dengan data. Skema tabel ini diberikan oleh klausa SELECT dari definisi tampilan

  • Teknik ini paling berguna saat kueri melibatkan banyak gabungan tabel besar, atau fitur SQL lainnya yang dapat berkontribusi pada waktu eksekusi yang lama. Anda mungkin menemukan ini di proyek Web, di mana pengunjung situs tidak dapat dibiarkan menunggu saat kueri berjalan
  • Karena tampilan tidak akan berguna jika kedaluwarsa, tampilan harus dijalankan kembali, minimal, ketika ada perubahan pada salah satu tabel yang menjadi dasarnya. Sintaks SQL untuk membuat tampilan terwujud mencakup banyak opsi kapan pertama kali dijalankan, seberapa sering dijalankan kembali, dan seterusnya. Ini memerlukan manual referensi lanjutan untuk sistem khusus Anda, dan berada di luar cakupan tutorial ini
  • Indeks

    Indeks, seperti yang Anda harapkan, adalah struktur data yang digunakan database untuk menemukan record dalam tabel dengan lebih cepat. Indeks dibangun di atas satu atau lebih kolom tabel; . Daripada menyortir catatan pada satu atau beberapa bidang selama eksekusi kueri, sistem dapat dengan mudah mengakses baris dalam urutan indeks

    Indeks unik dan non-unik. Saat Anda membuat indeks, Anda dapat mengizinkan kolom yang diindeks berisi nilai duplikat; . Anda juga dapat menentukan bahwa nilai dalam kolom yang diindeks harus unik, seperti halnya dengan kunci utama. Faktanya, saat Anda membuat batasan kunci utama pada tabel, Oracle dan sebagian besar sistem lainnya akan secara otomatis membuat indeks unik pada kolom kunci utama, serta tidak mengizinkan nilai nol di kolom tersebut. Salah satu alasan bagus bagi Anda untuk membuat indeks unik pada bidang kunci non-primer adalah untuk menegakkan integritas kunci kandidat, yang jika tidak, mungkin akan memiliki nilai duplikat (omong kosong) di baris yang berbeda

    Kueri versus penyisipan/pembaruan. Sepertinya Anda harus membuat indeks pada setiap kolom atau grup kolom yang akan pernah digunakan dalam klausa ORDER BY (misalnya. Nama terakhir nama depan). Namun, setiap indeks harus diperbarui setiap kali baris disisipkan atau nilai dalam kolom tersebut diperbarui. Meskipun struktur indeks seperti pohon B atau B+ memungkinkan hal ini terjadi dengan sangat cepat, mungkin masih ada keadaan di mana terlalu banyak indeks akan mengurangi kinerja sistem secara keseluruhan. Masalah ini dan yang serupa sering dibahas dalam kursus lanjutan

    Sintaksis. Seperti yang Anda harapkan sekarang, SQL untuk membuat indeks adalah

            CREATE INDEX  ON  (, ...);

    Untuk menerapkan nilai unik, tambahkan kata kunci UNIQUE

            CREATE UNIQUE INDEX  ON  (, ...);
    _

    Untuk menentukan tata urutan, tambahkan kata kunci ASC atau DESC setelah setiap nama kolom, seperti yang akan Anda lakukan dalam klausa ORDER BY

    Apakah tampilan MySQL lebih cepat daripada kueri?

    tidak ada perbedaan . Tampilan hanyalah kueri tersimpan yang dapat dirujuk dalam kueri sql seolah-olah itu adalah tabel. Perhatikan bahwa ini tidak berlaku untuk tampilan terwujud. Tampilan hanyalah kueri yang disimpan dalam kamus data. itu tidak akan membuat kueri Anda berjalan lebih cepat atau lebih lambat.

    Apakah tampilan lebih cepat daripada kueri?

    Tampilan mempercepat penulisan kueri, tetapi tidak meningkatkan kinerja kueri yang mendasarinya . Namun, kami dapat menambahkan indeks berkerumun yang unik ke tampilan, membuat tampilan yang diindeks, dan mewujudkan potensi dan terkadang manfaat kinerja yang signifikan, terutama saat melakukan agregasi kompleks dan perhitungan lainnya.

    Apakah tampilan MySQL efisien?

    Tampilan dapat menyediakan alat yang efektif untuk menyajikan data ke aplikasi dengan cara mengabstraksi struktur tabel yang mendasarinya . Pada saat yang sama, mereka dapat membantu menyederhanakan pernyataan SQL yang perlu ditulis oleh pengembang aplikasi saat mengambil data dari database MySQL.

    Manakah tampilan atau tabel yang lebih cepat dalam SQL?

    Karena tabel adalah objek fisik, tabel memberikan hasil yang cepat . Karena tampilan merujuk ke tabel untuk data, mereka memberikan hasil yang lambat. Tabel di SQL Server bersifat independen.