Database adalah induk dari sebuah aplikasi. berbicara masalah database pasti akan menyinggung soal query. query bisa disimpulkan sebagai cara untuk menampilkan data database semakin banyak data pada database semakin ribet pada penampilannya. kan tidak mungkin menampilkan data berisi jutaan row sekaligus. solusinya adalah dengan melakukan seleksi pada database tersebut.
Jangan pilih field yang tidak perlu (*)
ini hal utama untuk mempercepat query mysql, pastikan memilih filed yang dibutuhkan saja. apalagi jika filed bisa puluhan pastikan memilih field yang ingin ditampilkan saja.
SELECT * FROM wp_posts;
sebaiknya gunakan metode seperti ini
SELECT title, excerpt, author FROM wp_posts;
Gunakan Limit pada quey sql
Selanjutnya gunakan limit pada query ini penting untuk menghindari menampilkan data yang tidak perlu.
SELECT title, excerpt, author FROM wp_posts LIMIT 10;
Jangan lakukan query sql di looping
foreach ($ display_order sebagai $ id => $ ordinal)
{$ sql = "UPDATE SET kategori display_order = $ ordinal WHERE id = $ id";
mysql_query ($
sql);}
coba gunakan cara seperti ini
UPDATE categories
SET display_order = CASE id
WHEN 1 THEN 3
WHEN 2 THEN 4
WHEN 3 THEN 5
END
WHERE id IN (1,2,3)
Utamakan JOIN daripada SUBQUEY
subquery adalah salah satu hal yang paling susah dihindari, karena terbilang mudah dan tidak ribet. namun akan membutuhkan waktu yang lebih lama
SELECT a.id,
(SELECT MAX(created)
FROM posts
WHERE author_id = a.id)
AS latest_post FROM authors a
sebaiknya gunakan cara seperti ini
SELECT a.id, MAX(p.created) AS latest_post
FROM authors a
INNER JOIN posts p
ON (a.id = p.author_id)
GROUP BY a.id
Hati-hati menggunakan wilcards
wildcard bukannya tidak boleh tapi gunakan sebijak mungkin.
#Full wildcard
SELECT * FROM TABLE WHERE COLUMN LIKE '%hello%';
#Postfix wildcard
SELECT * FROM TABLE WHERE COLUMN LIKE 'hello%';
#Prefix wildcard
SELECT * FROM TABLE WHERE COLUMN LIKE '%hello';
Utamakan query UNION dibanding OR
SELECT * FROM a, b WHERE a.p = b.q or a.x = b.y;
contoh yang baik
SELECT * FROM a, b WHERE a.p = b.q
UNION
SELECT * FROM a, b WHERE a.x = b.y
Gunakan INDEX
ini yang menjadi kunci pada pembuatan database pastikan field yang menjadi objek pencarian nantinya menjadi index.
CREATE INDEX idxModel ON Product (Model);