MySQL için Optimizasyon Teknikleri: Performansı ve Hızı Artırın

SELECT Sorgularda gerekli alanları belirtin

Sorgudaki tüm alanları seçmek yerine SELECT, yükü azaltmak ve sorgu hızını artırmak için yalnızca gerekli alanları seçin.

Örneğin, yalnızca müşterinin adını ve adresini önemsiyorsanız, sorguyu değiştirin:

SELECT * FROM customers;

ile

SELECT name, address FROM customers;

 

Dizin oluştur

Index MySQL verileri daha hızlı aramanıza ve almanıza yardımcı olur. WHERE, JOIN, veya yan tümcelerinde sık kullanılan alanları belirleyin ORDER BY ve bunlar için dizinler oluşturun.

Örneğin, " orders " tablosunda, " " alanı veya customer_id sorgularında sık kullanılıyorsa, aşağıdaki gibi bir dizin oluşturabilirsiniz: WHERE JOIN

CREATE INDEX idx_customer_id ON orders(customer_id);

 

Uygun dizin türlerini kullanın

MySQL, hash B-tree ve full-text. En iyi performansı sağlamak için sorgu gereksinimlerinize göre uygun dizin türünü seçin.

full-text Örneğin, bir veri alanı içinde metin aramanız gerekirse, aşağıdaki gibi bir dizin oluşturabilirsiniz:

CREATE FULLTEXT INDEX idx_description ON products(description);

 

Sorguları optimize et

EXPLAIN Sorgu yürütme planını görüntülemek ve nasıl MySQL gerçekleştirdiğini analiz etmek için kullanın. Bu, dizinleri kullanarak veya sorguları yeniden yazarak performans sorunlarını belirlemenize ve sorguları optimize etmenize yardımcı olur.

Örneğin, bir sorgunun sorgu planını görmek için SELECT aşağıdaki komutu çalıştırın:

EXPLAIN SELECT * FROM orders WHERE customer_id = 123;

 

Döndürülen sonuçların sayısını sınırlayın

Bir sorgu çok sayıda sonuç döndürdüğünde, yan tümceyi kullanarak döndürülen sonuçların sayısını sınırlayın LIMIT. Bu, yükü azaltmaya ve sorgu hızını artırmaya yardımcı olur.

Örneğin, "ürünler" tablosundan yalnızca 10 sonuç döndürmek için aşağıdaki sorguyu kullanabilirsiniz:

SELECT * FROM products LIMIT 10;

 

INNER JOIN yerine kullan JOIN

INNER JOIN normalden daha iyi performans gösterir JOIN. INNER JOIN Yalnızca her iki tabloda da eşleşen kayıtları önemsiyorsanız kullanın .

Örneğin, " orders " ve " customers " tablolarını " " alanına göre birleştirmek için customer_id aşağıdaki sorguyu kullanabilirsiniz:

SELECT * FROM orders INNER JOIN customers ON orders.customer_id = customers.customer_id;

 

Geçici tabloları dikkatli kullanın

Geçici tablolar belirli durumlarda kullanılabilir, ancak sorguları yavaşlatabilecekleri için dikkatli kullanılmaları gerekir. Mümkünse geçici tabloları kullanmaktan kaçınmak için sorguları optimize etmeyi düşünün.

Örneğin, aşağıdaki sorguda geçici bir tablo kullanmak yerine:

CREATE TEMPORARY TABLE temp_table SELECT * FROM products;

orijinal tablodaki verileri doğrudan sorgulamak için sorguyu optimize etmeyi deneyebilirsiniz.

 

MySQL yapılandırmasında ince ayar yapın

Sistem kaynaklarından en iyi şekilde yararlanmak ve uygulamanızın gereksinimleriyle uyumlu hale getirmek için MySQL'i yeniden yapılandırmayı düşünün. Bu, belleğin, arabellek boyutlarının, bağlantı sınırlarının ve diğer parametrelerin yapılandırılmasını içerir. MySQL belgelerine bakın ve yapılandırmayı kendi ortamınıza uyacak şekilde nasıl ayarlayacağınızı öğrenin.

 

Gereksiz verileri silin

Veritabanı boyutunu azaltmak ve sorgu hızını artırmak için gereksiz verileri silin veya eski verileri yedekleyin.

Örneğin, eski günlük kayıtlarını içeren bir " " tablonuz varsa logs, aşağıdaki sorguyu kullanarak bir yıldan eski kayıtları silebilirsiniz:

DELETE FROM logs WHERE created_at < '2022-01-01';

 

Belleği kullan cache

MySQL'in belleğini, cache sık yürütülen sorguları ve yakın zamanda erişilen verileri depolamak için yapılandırın. Bu, disk erişim süresini azaltmaya ve sorgu hızını artırmaya yardımcı olur.

Örneğin, 1 GB boyutunda bir önbellek yapılandırmak için MySQL'in "my.cnf" yapılandırma dosyasını aşağıdaki gibi değiştirebilirsiniz:

[mysqld]  
...  
query_cache_type = 1  
query_cache_size = 1G  

 

Lütfen yukarıdaki örneklerin açıklayıcı olduğunu ve gerçek veritabanınızın yapısına ve gereksinimlerine göre ayarlanması gerektiğini unutmayın. Kendi ortamınıza uygun olduklarından emin olmak için bu optimizasyon tekniklerini uygulamadan önce ve uyguladıktan sonra dikkatli bir şekilde test edin ve etkinliğini değerlendirin.