Archive for the ‘veritabanı sistemleri’ Category

mysql ve covering index hadisesi

Thursday, August 13th, 2009

Veritabanlarında büyük verilerle çalışırken dikkatli olmak gerekiyor. komplex sorguları optimize etmek çok önemli. Misal mysql’de büyük veriler içerisinde limit komutu ile sayfalama yaparken belli bir süre sonra (limit 10000, 30 gibi) sorguların çok uzun sürdüğünü görebilirsiniz. Bu süreleri kısaltmak için kullanılan “covering index” tekniği ise mantık olarak şöyle, önce istediğimiz fieldları istediğimiz tablodan çekecek select komutunu yazıyoruz. Ardından bunu sadece primary keyi çeken ve istediğimiz kısıtları içeren query ile joinliyoruz. Böylece önce inner query çalışıp where ile belirttiğimiz kısıttaki ve limitteki id’leri index üzerinden alıyor, daha sonra bu id’leri gene index üzerinden sorgulayıp verileri getiriyor. Örnek query aşağıda:

EXPLAIN
SELECT *
FROM products
JOIN (
SELECT prod_id
FROM products
WHERE actor=’SEAN CARREY’ AND title LIKE ‘%APOLLO%’
) AS t1 ON (t1.prod_id=products.prod_id)

Gönül isterdi ki mysql bunu kendi akıl etsin ama malesef :)

hayır, en kapsamlı mysql gui : Navicat for MySQL Lite

Tuesday, May 19th, 2009
en son yazımda mysql için çok fazla kötü gui olduğundan bahsetmiştim ve özellikle trigger ve stored procedure desteklerinden yakınmıştım. bunun için toad for mysql öneriyordum fakat navicat for mysql lite’nin de hem ücretsiz olduğunu hem trigger editleyebildiğini hem de tüm işletim sistemlerinde çalıştığını (windows, linux, mac) öğrendim. her ne kadar toad kadar çok seçenek sunmasa da (zaten kim kullanıyor o kadar seçeneği) navicat for mysql lite, size trigger editleme imkanı sunuyormuş. bunun dışında bir de event kısmı var ki, mysql de böyle bir opsiyon var mı anlamış değilim. var ise onu da destekliyormuş ki, bu durumda tadından yenmiyor oluyor.

http://www.navicat.com/html/en/download/download.html adresinden de indirebilirsiniz.

en kapsamlı mysql gui : toad for mysql

Tuesday, May 12th, 2009

açık kaynaklı en popüler veritabanı sistemi olan mysql bu kadar popüler olmasına rağmen grafik arayüzü uygulaması (gui) açısından da herhalde en kötüsüdür (sybase vardı bi de di mi hehehe). mysql’in kendi geliştirdiği mysql query browser ve mysql administrator oldukça vasat (gerçi ben gene en çok bunları kullanıyorum). Aslında çok fazla uygulama varmış gibi görünse de efendim, gerçek böyle değil. hepsinin bir şeyleri eksik.

arkadaşlar, trigger yazıp sonra editleyebileceğiniz en hamarat mysql gui’si toad for mysql. o da ne yazık ki sadece windows’ta çalışıyor. bu yüzden trigger editlemek gerektiği zaman virtualbox‘dan windows açıp toad üzerinden editleme yapıyorum :) ölme eşşeğim ölme. (eh konsoldan girip elle alter yazabilecek kadar da becerikli değilim kabul ediyorum)

oracle gui’si olarak bildiğimiz bu ürün beleş olarak sitesinden indirilebilir. yalnızca bir de .net framework 2.0 istemeseymiş daha güzel olacakmış.

e canım kardeşlerim şunu .net ile yazacağınıza java ile yazaydınız ne güzel solaris’te bile kullanırdık. ben de bu gereksiz yazıları yazmazdım…

toad for mysql den bir görüntü

toad for mysql den bir görüntü

konsol üzerinden mysql dump’ı almak

Friday, May 30th, 2008

mysql kullanırken her zaman bir gui aracı kullanmışımdır. ancak geçenlerde konsol ile dump almam icap etti. napacam derken Sarp yardımcı oldu. ben de buraya not edeyim de bi daha sormayım dedim :)

mysqldump -h 192.168.1.2 -u root -p db tablo1 tablo2 tablo3 > db.dump.sql

komut satırı ile db şemasındaki tablo1, tablo2 ve tablo3′ün dump’ını db.dump.sql dosyasına alıyoruz. herhalde hata yoktur bunda çünkü bir daha kullanmaya ihtiyacım olmadı :)

edit: aldığınız dump’ı geri yüklemek için de

mysql -u root -ppassword dbname < db.dump.sql

yazmak yetiyor