mysql-innodb

InnoDB kullanacaklar için ipuçları

Başlıkta InnoDB yazsada aslında MySQL kullanıldığında yapılması gerekenlere değinecek bir yazı yazacağım. Ama ağırlık merkezi InnoDB olacağından başlıkta bunu uygun gördüm. Zaten MyISAM çok sorunlu bir tip değil. Yeni bir projeye başlandığında yapılması gerekenler. 1. Local de çalıştığınız MySQL sürümü ile sunucudakini eşitleyin. NY: Dump almaktan tutun bir çok özellik bunu yapmazsanız başınızı ağrıtır. Versiyonlar […]

Başlıkta InnoDB yazsada aslında MySQL kullanıldığında yapılması gerekenlere değinecek bir yazı yazacağım. Ama ağırlık merkezi InnoDB olacağından başlıkta bunu uygun gördüm. Zaten MyISAM çok sorunlu bir tip değil.

Yeni bir projeye başlandığında yapılması gerekenler.

1. Local de çalıştığınız MySQL sürümü ile sunucudakini eşitleyin.

NY: Dump almaktan tutun bir çok özellik bunu yapmazsanız başınızı ağrıtır. Versiyonlar arasında dump da farklılıklar oluşabiliyor. Localde ileri sürüm kullanıyorsanız yazdığınız komutlar sunucuda çalışmayacaktır. Bu durum geri dönüğ bir çok şeyi yeniden yapmanıza neden olacaktır.

2. Çalıştığınız ortam Windows, Linux, Mac olabilir. Stabil iş yapmak istiyorsanız bence büyük küçük harf (Case Sensitivity)  duyarlılığını mutlaka ayarlayın. Bu komut ile tablo, field, sp, view isimlerinizin duyarlılığı ayarlanmış olucak. İlerde Linux’a geçebilirsiniz… Bunun için localde “my.cnf ” dosyasına aşağıdaki komutu yazın.

lower_case_table_names=0

NY: Windows ve Mac büyük küçük harf duyarlılığı taşımaz ama Linux da bu vardır.
Sunucular genelde linux olur. Eğer siz her iki ortamda stabil çalışacak bir uygulama istiyorsanız
bu kurala uyun.

3. Veritabanına bağlanmak için sunucunuzdakiyle aynı isimde bir “user” oluşturun. Bütün işlemleri bu kullanıcı üzerinden yapın.

NY: Yapılan işler, oluşturulan SP ler kullandığınız kullanıcının yetkileri ile oluşturulur. Sizin sunucuda hangi komutlara erişiminiz varsa localde de bu yetkiler ile oluşturduğunuz user kullanın ki hataları en baştan önleyin.
Ayrıca Stored Procedure lerin kullanıcı kimliğinde “[email protected]” kullanırsanız uzaktan erişmeye çalıştığınızda “Insufficient Privilege” gibi bir hata alabilirsiniz. Uzaktan erişmek istediğinizde [email protected] olursunuz. O nedenle ya [email protected]% şeklinde SP oluşturacaksınız veya direk bütün işlemleri sunucu tarafında yapacaksınız.

4.  Tablolar arası ilişkilerde alan adlarının özelliklerini mutlaka aynı tutun. Ana tabloda int(10) tanımladığınız değeri ilişki olan yerde de bu şekilde tanımlamalısınız. Ayrıca “unsigned” durumu vs.. içinde geçerli. (innodb)

NY: Eğer sürekli hata almak istemiyorsanız bunu yapın :)

5. Referans larda tablo adlarının büyük küçük harf uyumuna dikkat edin. (innodb)

NY: Büyük küçük harfe duyarlı bir sunucuda sürekli hata almamak için yapmalısınız.

6. Datası olan tabloda ilişki tanımlamak sorun çıkartabilir. Buna dikkat edin. (innodb)

NY: InndoDB tutarlılık sağlayan bir tiptir. Sonradan eklediğiniz ilişkinin tutarlılığı yoksa ilişkiyi oluşturamazsınız.
Bu hataları almamak için yapmalısınız.

7.  View lerde genelde tablo adları komple küçük yazılıyor. Bunu yapmayın.

NY: Tablo isimlerini kullandığınız viewler tutarlı olsun istiyorsanız bunu yapmayın.

8. Stored Procedure lerde sorun yaşamak istemiyorsanız işemlerinizi veritabanının kullanıcı adıyla yapın. Sonra yetki yok hataları aldığınızda moraliniz bozulmasın. Root olarak oluşturduğunuz SP normal user ile işlem yapmaya kalkınca doğal olarak hata verecektir. (Madde 3)

9. Stored Procedure ile ilgili aldığınız genel hatalar için şuraya bakabilirsiniz.

İlk geri bildirim Osman kardeşimizden geldi. Hemen güncelleme yaptım.

Not: Geri dönüşlere göre eklemeler yapabiliriz.
NY: Neden Yapmalıyım.