$encode = $_POST['encode'];
$row = mysql_fetch_array(mysql_query("SELECT * FROM `md5` WHERE encode='$encode'"));
$sonuc = $row[decode];Ama bu işlem 30-40 sn sürüyor. Bunu hızlandırmanın bir yolu var mıdır ?
Php Sorgu Hızlandırma
15
●6.434
- 25-06-2010, 03:55:30Merhaba arkadaşlar. elimde 10 milyon veri bulunan , tek tablolu ve 3 sütünlu bir mysql var. Mysql de xx olan id yi bulduruyorum, Ardından o id deki xx sütünün çekiyorum. Yan ;
- 25-06-2010, 04:02:28Sorgu yu mysql de çalıştırdığımda, Sorgu lar hızlanır mı ? (ve, encode,decode,id var hepsinde tek tek çalıştıryım mı bittikçe ? )GeCe_ adlı üyeden alıntı: mesajı görüntüle
- 25-06-2010, 04:15:33Yukarıda yazdığım kod indexleme için kullanılır.
where encode='bul'
şeklinde biten bir sorgu için encode alanını indexlemek sorguyu gözle görülür biçimde hızlandırır.
where encode='bul' and kategori='armut'
yukarıdaki gibi bir sorgudada encode ve kategori alanlarının indexlenmesi faydalı olacaktır. - 25-06-2010, 09:08:58Üyeliği durduruldubi encodun 2 defa kaydedilmesinin saçma olduğunu düşünürsek unique index oluşturmak hızı arttıracaktır..
"create unique index encodeindexi on md5(endocode)"
tablo adının md5 olması bu sorgunun hatalı çalışmasına sebep olabilir cunku md5 adında bir fonksiyon var.
"create unique index encodeindexi on `md5`(endocode)"
bir de böyle denersiniz. - 25-06-2010, 09:46:09Üyeliği durduruldudizi kullanimlarinizda hatali bu arada;
https://www.r10.net/php/322923-dizi-k...-yaklasim.htmlAlıntı
fetch_array yerine fetch_assoc ta kullanabilirsiniz - 25-06-2010, 11:55:44hocam kodların 2 side hata verdi. ama tablo a baktığımda Karşılaştırma kısmında : kullanımda yazısı çıkıyor ve girilmiyor. Acaba yanlış bişey mi yaptım ?D3LLy adlı üyeden alıntı: mesajı görüntüle
Yeni
Düzeldi arkadaşlar, Ama bişey olduğunu sannetmiyorum. Çünkü hata veriyordu - 25-06-2010, 12:40:50asıl sorun bütün verilerin tek tabloda tutulması, yani veritabanı yapısı 10 milyon verinin 1 tabloda tutulması bilmiyorum ama yani ben olsam parçalarım o kadar veriyi okutmam. ölçekleme her zaman gerekli.
ama sitenin nasıl çalıştığını bilmediğim için bir şey söylemem. yani 2 tabloya ayrılabilir ilk önce verilerin giriş tarihine göre ne zaman kayıt olduğu tutulur.
Sonra kayıt tarihine göre gerekli tabloda veri aranır.Bu yöntem gerekli veriyi 10 milyon değil 1 milyon veri arasında arayacağı için çok daha hızlı çalışacaktır. yukarıda dediğim gibi ölçekleme.
Başka bir yöntem ise donanım ekleme sunucunuza alacağınız ekstra donanım mutlaka işlemleri hızlandıracaktır ki kısa kod her zaman en hızlı değildir. kodları kısaltmak için harcayacağınız paranın yarısını donanıma harcarsanız daha fazla performans alabilirsiniz.
Diğer bir yöntem ise , verileri sabit bir dosya olarak tutma, mysql sorgusu yerine dosya açıp onun içindeki verileri okutma. Çok fazla performans fark etmese bile genede hızlandıracaktır. CPU kullanımını azaltacaktır.
