Merhaba arkadaşlar, bir uygulamanın performansı önemli bir kriter olduğunu hepimiz biliyoruz, bu durumda veritabanında ki milyonlarca veri hızlı ve güvenli bir şekilde gelsin isteriz. Fakat bu iş aslında sanıldığı kadar kolay bir iş değildir.
Veritabanlarının en hızlısı diye birşey yoktur, bunlar sadece veri topluluklardır. Veritabanının hızlı olması için doğru veritabanı seçimi ve şemanın ne kadar iyi tasarlandığına bağlı olan bir kaç durumlar vardır. Yani oyunu kurallarına göre oynamak gerekir. Tabi sadece şema ile kalmıyor, ağ gecikmesi, yapılandırma, DBA/SA (Database Administrator/System Administrator) deneyimi, donanım, işletim sistemi ve RAM gibi veritabanı hızını etkileyen daha fazla etken vardır. Ayrıca bu veritabanlarını daha verimli ve güvenli bir şekilde kullanmamızı sağlayan veritabanı mimarı sorumlu kişiler vardır.
En hızlı veritabanı nedir?
En hızlı veritabanı nedir? Bu soruya tam anlamıyla cevap vermek mümkün değildir. Her veritabanı, belirli bir ölçekte ve belirli türdeki işlemleri yapmak için optimize edilmiştir. Bu nedenle, “hızlı” bir veritabanı seçmek, ne tür işlemler gerçekleştirmeniz gerektiğini ve bunları hangi ölçekte gerçekleştirmeniz gerektiğini bilmeniz gerekir ki ona göre veritabanı seçimi yapmanız daha sağlıklı ve hızlı sonuçlar almayı hedeflemiş olursunuz.
Projenizde ne yapmaya çalıştığınıza bağlı olarak şu etkenleri sorgulamalısınız.
- Basit sorgular mı?
- Basit güncellemeler mi?
- Karmaşık sorgular mı?
- Karışık iş yükü mü?
- Büyük veri mi veya küçük veri mi?
- Yoğun eş zamanlı veya tek kullanıcı mı?
- Güçlü tutarlı mı yoksa zayıf tutarlı mı?
- Planlanmamış/geçici sorgular mı?
Yukarıdaki etmenlere doğru SQL yazılımını seçerek projelerinizde istediğiniz hızları elde edebilirsiniz.
tabi bu soruya genel olarak cevap vermek gerekirse; MySQL, Oracle, SQL Server, MongoDB, SQLite
Soruyu daha da anlamlandırarak aşağıdaki doğru biçimde sql sorgusunun nasıl yazıldığını inceleyebilirsiniz.

Doğru SQL sorgusu nasıl yazılır?
Veritabanı Sorgusu oluştururken sadece problemi çözme odaklı bakılmaz, çözümün yanında sadelik, hız ve verimlilik konuları dikkate alınarak SQL sorgusu oluşturulur. SQL sorgusunu doğru biçimde ve planlı bir şekilde yazarak hem sürdürülebilirliği elde edebilirsiniz hem de performansınızı arttırabilirsiniz.
Garbage In, Garbage Out (GIGO) yani “Çıktının kalitesi girdinin kalitesiyle belirlenir.” ilkesiyle hareket ederek sorgularınızı yazın.

1. Yalnızca İhtiyacınız Olan Verileri Alın
Bazı yazılımcılar da “Ne kadar çok veri, o kadar iyi” zihniyeti vardır, bu yanlış düşünce. Çünkü herhangi bir uygulama ihtiyacınız olmayan verileri getirerek, yaptığınız uygulamanın yavaş çalışmasına neden olursunuz. SQL sorgusunda verileri listelerken SELECT DISTINCT
ve LIKE
komutlarını kullanarak verilerinizi filtreye bilirsiniz.
SELECT DISTINCT Country FROM Customers;
2. Sonuçlarınızı Sınırlayın
Verilerinizi sınırlı sayıda listeleyerek, veritabanının performansını artırabiliriz. Bu yaklaşım, verilerin daha etkili bir şekilde erişilmesini ve işlenmesini sağlayarak, veritabanının daha hızlı yanıt vermesine ve daha düşük kaynak kullanımına olanak tanır. Bu aynı zamanda gereksiz yükü azaltarak, veritabanının daha verimli çalışmasına katkı sağlar ve genel kullanıcı deneyimini olumlu yönde etkileyebilir.
#Oracle Syntax
SELECT * FROM Customers WHERE Country='Germany' FETCH FIRST 10 ROWS ONLY;
#SQL Server / MS Access Syntax
SELECT TOP 10 * FROM Customers WHERE Country='Germany';
#MySQL Syntax
SELECT * FROM Customers WHERE Country='Germany' LIMIT 10;
3. Sorgularınızı Karmaşık Yapmayın
Veritabanından verilerinizi listelerken oldukça basit ve verimli sorgular yazarak karmaşık sorgulardan kurtulun. Ayrıca veritabanı tablosundaki veri alma hızını artıran bir veri yapısı olduğunu unutmayın, Karmaşık sorgu ile ilgili aşağıda örneklerle inceleyin.
#karmaşık yapı
SELECT * FROM Customers WHERE CustomerID=13 OR CustomerID=60 OR CustomerID=95;
#Doğru yapı
SELECT * FROM Customers WHERE CustomerID IN (13, 60, 95);
#karmaşık yapı
SELECT * FROM Orders WHERE OrderDate >= 2019 AND OrderDate <= 2021;
#Doğru yapı
SELECT * FROM Orders WHERE OrderDate BETWEEN 2019 AND 2021;
Örnekler bunun gibi çoğaltılabilir fakat konumuz en hızlı veritabanı olduğunuz için onu başka bir makalede anlatabilirim.
4. SQL ile Filtreleyin
Verilerimizi listelerken belli bir koşullara göre filtrelemek isteriz, bunu yaparkende ya programlama dili ile yaparız ya da SQL sorgusu ile yaparız. Fakat burada dikkat edilmesi gereken verilerin filtreleme işlemini sql tarafından yapabiliyor ise sql sorgusu ile yapın. Çünkü veritabanları bunun için optimize edilmiştir.
Ancak, SQL sorguları doğru yapılırsa son derece verimli ve yanlış yapılırsa daha yavaş olacağını hiçbir zaman unutmayın.
(Bazı filtrelemeler programlama dillerine göre farklılık gösterebilir.)
Programala dili ile filtrelemenin avantajları:
- SQL sorguların karmaşıklığını azaltır.
- Potansiyel olarak daha basit ve anlaşılır kodlar oluşur.
Programlama dili ile filtrelemenin dezavantajları:
- Daha yüksek RAM kullanımı.
- Daha yavaş (Doğru dizine eklenmemiş bir tablonuz yoksa)
SQL ile filtrelemenin avantajları:
- Genellikle çok daha hızlı, özellikle uygun mimarisi iyi tasarlanmış tablolarda.
- Daha az RAM kullanır.
- Ayrıştırılacak daha az veri listeler.
SQL ile filtrelemenin dezavantajları:
- SQL sorguları çok ileri götürülürse karmaşık hale gelebilir.
- Sorguya daha fazla mantık taşımak, veritabanı yorumlanabilirliğini daha zor hale getirebilir (Özellikle MySQL, SQLite, vb.)
Aklınızda Bulunsun…
www.w3schools.com
SQL anahtar sözcükleri büyük veya küçük harfe duyarlı DEĞİLDİR:select
ileSELECT
aynıdır. Ancak, bunları büyük harflerle yazmak yaygın bir ifadedir.
Bonus
“SQL” Kelimesinin Telaffuzu
Okunuşu: SQL ɛs-kju-ɛl sikuıl
SQL kelimesini ingilizce telaffuzunu video olarak dinleyebilirsiniz.
Arkadaşlar yazımızda hata veya önerileriniz olursa lütfen yorum yapmayı unutmayın.
Unutmayın! Paylaşmak; kazanmanın en hızlı ve kolay yoludur. Bir sonraki makalemizde görüşmek dileğiyle esen kalın.