Mysql tablo düzenlerken 1062 – Duplicate entry for key ‘id’ hatası

Alında sorun hatada belirtildiğinden farklıdır aslında kopya bir girdi yoktur girdi kontrol edildiğinde zaten bu görülmektedir, yoğun işlem gerçekleştirilen tablolarda Navicat, PhpMyAdmin yada gibi herhangi bir veritabanı yönetim sistemiyle tabloya yeni bir sütun eklerken yada tabloda herhangi bir değişiklik yaparken karşılaşılabilen sorunu aşağıdaki gibi LOCK ve UNLOCK yaparak tabloyu düzenleyebiliriz. PHP için bir örnek verecek […]

Posted in SQL

Mysql Beklenmedik Sonuçlar

1- NULL ARAMA YAPMAK SELECT * FROM a WHERE a.column = NULL Bu sorgu mysql optimizer tarafından yok sayılacaktır. SELECT * FROM a WHERE a.column IS NULL Şeklinde arama yapılmalıdır. 2- LEFT JOIN PERFORMANSI SELECT * FROM a LEFT JOIN b ON b.a = a.id WHERE b.column = ‘something’ Aşağıdaki sorgu daha performanslıdır SELECT * FROM […]

Posted in SQL

Mysql Sorgu Analizi ve Mysql Optimizasyonu

my.cnf dosyasında internetten bulabileceğiniz hazır ayarlar dışında phpMyAdmin ile çalışan sorguları izleyerek optimizasyon yapmanız daha yararlı olacaktır. Örneğin Sorgularınızın bir kısmı ‘Query End ‘ durumunda bir süre kalıyorsa my.cnf dosyasına innodb_flush_log_at_trx_commit = 0 komutunu girerek sorgularınızı hızlandırabilirsiniz. Yine sorgularınızı inceleyerek sorguların ‘Waiting for query cache lock’ durumunda kaldığını gözlemliyorsanız my.cnf den query_cache_size = 0 query_cache_type […]

Posted in SQL

Mysql Best Practices

Mysql query yazarken daha rahat etmek için birkaç en iyi uygulama örneği: Satıriçi yorumlar kullanılmalıdır /* Bu sorgu kullanıcıları listeler */ Boşluk tuşu yerine TAB tuşu tercih edilmelidir birden fazla AND operatörü kullanılıyorsa WHERE den sonra 1=1 kullanılıp sonraki satırlar AND ile başlatılarak ileride değişiklik yapılması daha kolay hale gelebilir. Tablo ve sütun isimleri anlaşılabilir […]

Posted in SQL