-

  
                    
  v   Haberler
  v   Yazilar
  v   Dosyalar
  v   Üyeler
  v   Animasyon'lar
  v   Resimler
  v   Z. Defteri
  v   Reklam ver

Menü
 
Anket
Kullandiginiz tarayici hangisi?
Internet Explorer 7 (42 %)
Internet Explorer önceki (11 %)
Firefox (36 %)
Opera (5 %)
Diger (4 %)
3908 - Katılım
 
İstatistikler
Üyeler
Son üyemiz : mert281
Bugün : 2
Dün : 7
Kayıtlı üye : 45660

Aktif Üyeler
 Aktif üye yok..
Sitede aktif
Üye : 0
Misafir : 19
Toplam : 19
Rekor : 119 kişi 15.11.2007
IP No : 38.107.191.85
Site sayacı
Bugün Tekil : 451
Bugün Çoğul : 465
Bugün Toplam : 916
----------------
Dün Tekil : 496
Dün Çoğul : 532
Dün Toplam : 1028
----------------
 
En hızlılar
bayburtlu069 (4110 Giriş)
hakanates (3527 Giriş)
Zehir (3283 Giriş)
canmoral (2398 Giriş)
istikbal (2356 Giriş)
 
Son Girişler
sonic (11.dk Önce)
vardarr (13.dk Önce)
blckinsaat (17.dk Önce)
serkans42 (104.dk Önce)
istikbal (192.dk Önce)
 
Dil Seçimi
tr en de
( TR )
 
MYSQL index eklemek Ram tüketiminden kurtulmak
  Yazılar || Veritabani Islemleri
   MYSQL index eklemek Ram tüketiminden kurtulmak


MYSQL index eklemek veritabanın yükünü hafıfletmek ve mysql ram kullanımına biraz olsun engel olmak
Yeni bir makale ile sizlere mysql için bazı çözümler sunmaya çalışacağım

Mysql veritabanı bilindiği üzere fazladan ram tüketiyor MSSQL ise takiplerim doğrultusunda işlemci MYSQL veritabanı için aslında bir çözüm var indexleme olayı.

Nedir ne işe yarar konusuna gelince hemen detaylarını açıklayalım ve kulanan arkadaşlara yardımcı olalım
index olayı tablolarda yaptığı bir düzenleme sayesinde tablodaki verileri alfabetik sıraya dizerek arama yada sorgulama sonucu mysql nin daha kolay erişimini saglıyor

Bidiğiniz gibi tabloda veriler idnum (otomatiksayı) ile sıralanıyor ve eger biz id numarasına değilde baska bir alanda sorgulama yaparsak Mysql o veriyi bulana kadar arıyor ve sonucu döndürüyor ve istenilen sonuç en son sıra yada sayı ise ozaman tüm verileri gözden geçiriyor buda kasılmasına neden oluyor

Set rs = Member.Execute("Select * from uyeler where id = '43'") şeklindeki bir sorgu id numarasında arama yaptığı için sorun olmuyor tabiki çünkü id numarası mysql de zaten alfabetik sıralama ile listelenmiş durumda.

Ancak Set rs = Member.Execute("Select * from uyeler where kulladi = 'memisibram'") şeklindeki sorgu sorun yaratıyor çünkü bu sorguda aranan kullanıcı adı tablodaki sıralamaya göre 48000 ci veri olabilir ve Mysql bu veriye ulaşana kadar arama yapar bunun sonucuda bize siteyi kasma Ram tüketme v.s gibi istenmeyen olaylara sebep olur

indexlersek ne olacak sorusuna gelince indexleme yapılan bir tabloda kulladi alanını indexlersek Mysql bu alanıda kendi içinde alfabetik sırada tutar ve sorgulama sonucunda bu alana index verildiyse alfabetik sırada tuttuğu bu alandan bakar sorgusuna ve veriyi hemen bulur bu işlem normal sorgulamaya göre daha hızlıdır

Otomatik id alanları ve longtext alanları indexlenemez indexleme aşağıdaki gibi yapılır
ALTER TABLE Tabloadi ADD INDEX indexadi (sutun1,sutun2,sutun3);
bu şekilde veritabanına indexadı adında index oluşur ve bundan sonra sutun1,sutun2,sutun3 alanları alfabetik sıralama ile listelenir sorgulamalarda artık Mysql daha kolay çalışır

İndexi kaldırmak için ALTER TABLE Tabloadi DROP INDEX indexadi ; şeklinde bir sorgu çalıştırmamız yeterlidir verilen index adında kaç sütün indexlediysek onları kaldırır

7583 Konu 27653 Cevap ve 41500 Üyesi olan aspsitem veritabanı ile localhostta yaptığım denemede forumdaki çok cevap alan bir konunun sayfa yüklenme sonucunu Not olarak düşeyim dedim
Index yapılmadan sayfa: 1,17 saniyede yorumlandı
ındex oluşturduktan sonraki aynı sayfa sayfa: 0,61 saniyede yorumlandı

Gördüğünüz gibi fark büyük kısaca yapsanız kaybedilecek birşey yok

Peki bunun zararları varmı her kolaylığın elbette bir ters etkisi var indexleme sonucu veritabanı boyutu biraz artabilir hatalı indexleme sonucu iyi yapayım derken veritabanı daha çok ağırlaşabilir misal gereksiz olan alanları indexleme gereksız yere yük olur her tablo için veya her sutun indexlenmemeli ve buna benzer birçok nedenler ancak doğru bir indexleme sonucu performans ve Ram tüketiminden kurtarır

Biz kendi portalımız AspSitem için indexlenecek tablo ve sütünları sizler için ayırdık ve hazır kod halinde veriyoruz kendi siteleriniz için tablo yapılarınızı sorgularınızı gözden geçirerek sizde yapabilirsiniz seçilecek alanları lütfen çok dikkat ederek seçiniz bu alanlar seçilirken sorgular önemli

AspSiteme index eklemek için Mysqldumper veya PhpMyadmin içinden calıştırılacak olan sorgular

Kod :#copy#

ALTER TABLE uyeler ADD INDEX uyeler_index (kulladi,son_tarih,unvan);
ALTER TABLE mesajlar ADD INDEX mesajlar_index (secim,yazan,f_id,soncevap,tarih);
ALTER TABLE mesaj ADD INDEX mesaj_index (kime,kimden);
ALTER TABLE online ADD INDEX online_index (ip);
ALTER TABLE haber ADD INDEX haber_index (baslik,tarih,kat_id);
ALTER TABLE download ADD INDEX download_index (isim,tarih,katid);
ALTER TABLE yazilar ADD INDEX yazilar_index (baslik,tarih,katid);
ALTER TABLE animasyon ADD INDEX animasyon_index (isim,tarih,kat_id);
ALTER TABLE linkler ADD INDEX linkler_index (isim,kat_id,tarih);
ALTER TABLE mp3ler ADD INDEX mp3ler_index (kat_id,isim,tarih);
ALTER TABLE resim ADD INDEX resim_index (isim,kat_id,tarih);
ALTER TABLE video ADD INDEX video_index (isim,kat_id,tarih);
ALTER TABLE ilanlar ADD INDEX ilanlar_index (kat_id,isim,tarih);
ALTER TABLE koseyazi ADD INDEX koseyazi_index (baslik,katid);
ALTER TABLE yorumlar ADD INDEX yorumlar_index (y_id,tip);
ALTER TABLE oylar ADD INDEX oylar_index (tipid,tip);

AspSiteme index Kaldırmak için Mysqldumper veya PhpMyadmin içinden calıştırılacak olan sorgular

Kod :#copy#

ALTER TABLE uyeler DROP INDEX uyeler_index;
ALTER TABLE mesajlar DROP INDEX mesajlar_index;
ALTER TABLE mesaj DROP INDEX mesaj_index;
ALTER TABLE online DROP INDEX online_index;
ALTER TABLE haber DROP INDEX haber_index;
ALTER TABLE download DROP INDEX download_index;
ALTER TABLE yazilar DROP INDEX yazilar_index;
ALTER TABLE animasyon DROP INDEX animasyon_index;
ALTER TABLE linkler DROP INDEX linkler_index;
ALTER TABLE mp3ler DROP INDEX mp3ler_index;
ALTER TABLE resim DROP INDEX resim_index;
ALTER TABLE video DROP INDEX video_index;
ALTER TABLE ilanlar DROP INDEX ilanlar_index;
ALTER TABLE koseyazi DROP INDEX koseyazi_index;
ALTER TABLE yorumlar DROP INDEX yorumlar_index;
ALTER TABLE oylar DROP INDEX oylar_index;

Bunlar sayesinde MysqlDumper yada PhpMyadmin açarak sorgu kısmından indexlerinizi ekleyebilirsiniz

Altta ise MysqlDumper yada PhpMyadmin  ile uğraşmadan bir asp dosyası ile index ekleyebilirsiniz

AspSiteme index eklemek için ASP dosyası kod içeriği

Kod :#copy#

<!--#include file="Gorunum.asp" -->
<%
Connect.Execute("ALTER TABLE uyeler ADD INDEX uyeler_index (kulladi,son_tarih,unvan)")
Connect.Execute("ALTER TABLE mesajlar ADD INDEX mesajlar_index (secim,yazan,f_id,soncevap,tarih)")
Connect.Execute("ALTER TABLE mesaj ADD INDEX mesaj_index (kime,kimden)")
Connect.Execute("ALTER TABLE online ADD INDEX online_index (ip)")
Connect.Execute("ALTER TABLE haber ADD INDEX haber_index (baslik,tarih,kat_id)")
Connect.Execute("ALTER TABLE download ADD INDEX download_index (isim,tarih,katid)")
Connect.Execute("ALTER TABLE yazilar ADD INDEX yazilar_index (baslik,tarih,katid)")
Connect.Execute("ALTER TABLE animasyon ADD INDEX animasyon_index (isim,tarih,kat_id)")
Connect.Execute("ALTER TABLE linkler ADD INDEX linkler_index (isim,kat_id,tarih)")
Connect.Execute("ALTER TABLE mp3ler ADD INDEX mp3ler_index (kat_id,isim,tarih)")
Connect.Execute("ALTER TABLE resim ADD INDEX resim_index (isim,kat_id,tarih)")
Connect.Execute("ALTER TABLE video ADD INDEX video_index (isim,kat_id,tarih)")
Connect.Execute("ALTER TABLE ilanlar ADD INDEX ilanlar_index (kat_id,isim,tarih)")
Connect.Execute("ALTER TABLE koseyazi ADD INDEX koseyazi_index (baslik,katid)")
Connect.Execute("ALTER TABLE yorumlar ADD INDEX yorumlar_index (y_id,tip)")
Connect.Execute("ALTER TABLE oylar ADD INDEX oylar_index (tipid,tip)")

Connect.Close : Set Connect = Nothing
Forum.Close : Set Forum = Nothing
Member.Close : Set Member = Nothing

Response.write "<h1>Indexler eklendi</h1>"
%>

AspSiteme index kaldırmak için ASP dosyası kod içeriği

Kod :#copy#

<!--#include file="Gorunum.asp" -->
<%
Connect.Execute("ALTER TABLE uyeler DROP INDEX uyeler_index")
Connect.Execute("ALTER TABLE mesajlar DROP INDEX mesajlar_index")
Connect.Execute("ALTER TABLE mesaj DROP INDEX mesaj_index")
Connect.Execute("ALTER TABLE online DROP INDEX online_index")
Connect.Execute("ALTER TABLE haber DROP INDEX haber_index")
Connect.Execute("ALTER TABLE download DROP INDEX download_index")
Connect.Execute("ALTER TABLE yazilar DROP INDEX yazilar_index")
Connect.Execute("ALTER TABLE animasyon DROP INDEX animasyon_index")
Connect.Execute("ALTER TABLE linkler DROP INDEX linkler_index")
Connect.Execute("ALTER TABLE mp3ler DROP INDEX mp3ler_index")
Connect.Execute("ALTER TABLE resim DROP INDEX resim_index")
Connect.Execute("ALTER TABLE video DROP INDEX video_index")
Connect.Execute("ALTER TABLE ilanlar DROP INDEX ilanlar_index")
Connect.Execute("ALTER TABLE koseyazi DROP INDEX koseyazi_index")
Connect.Execute("ALTER TABLE yorumlar DROP INDEX yorumlar_index")
Connect.Execute("ALTER TABLE oylar DROP INDEX oylar_index")

Connect.Close : Set Connect = Nothing
Forum.Close : Set Forum = Nothing
Member.Close : Set Member = Nothing

Response.write "<h1>Indexler Kaldirildi</h1>"
%>

Aspsitem Ay Yıldız 1,0 dan bu yana indexleme kullanmaktadır neden daha önce paylaşılmadı konusuna gelince olumlu olumsuz sonuçlarını beklediğimiz içindi şu ana kadar herhangi bir yan etkisini görmedim faydası elbette ki var Mysql kullanan tüm sitelere kesinlikle önerimdir

Başka bir yazıda yeniden birlikte olmak dileği ile Hoşçakalın

www.AspSitem.com


[ Yazan : MemiSibram | Tarih: 27.06.2009 | Okunma : 3080 ]
         Oy : 26-Puan : 91


 
Son 5 Yorum

Ekleyen: Azizee

Memis Abi dediginiz gibi Guncelle.asp diye Kodlari dosyanin icine attim... ve calistirdim


Ama malesef  >>>> Internal Server Error <<<< uyarisi cikti neden acaba Guncelleme olmadi


Tarih : 01.04.2010 02:04:14

Ekleyen: MemiSibram

crazywebbers
anlatim gayet acik kod eklemen gereken bir yer yok
AspSiteme index eklemek için ASP dosyası kod içeriği
kismindaki kodu guncelle.asp diye bir dosyaya yazarsan ve ftp ye atip bir defa calistirip sonrada sil yapacagin baska bisey yok kodu mysql kendi icinde calistiracak zaten


Tarih : 10.03.2010 23:18:23

Ekleyen: crazywebbers

işlemin nasıl yapılcağını anlatmamışsınız hocam biraz detaylı anlatırmısınız cok yarım yamalak bir anlatım tarzı olmuş


nedir bu anlattığınız anlamadım acikcası ne yapmamız gerekiyor


bu verdiğiniz kodlar nerelere koyulcak resimli bir anlatım yada video daha iyi olabilirdi coğu insan bu sorunu yaşıyor bende DC yim ama sırf bir site var %90 cpu tüketiyor 10.000 tekil hitti var ve acilen bunu uygulamamız gerekiyor


Tarih : 07.03.2010 19:53:00

Ekleyen: tunber
zaten kullanmakta olduğum sürüm 1.0 ve 1.1 e yükseltiyorum 1.0 veritabani böyle bir özelliğe sahipse bu güncellemeyi yapmam gereklimidir ?
Tarih : 03.08.2009 13:37:09

Ekleyen: aylax
işe yarıyor deneyin derim ;)
Tarih : 08.07.2009 20:08:51




Yorum ekleyin..(Sadece üyeler)

Kodlar , Duygular (Smile'ler)
 
Üyelik
Kullanıcı : 
Şifre : 
Güvenlik : 428431             
Güvenlik : 
Hatırla :   

  
 
 
Mini Sohbet
 
Takvim
« Ağu Eylül
Pz Sl Çs Cm Ct Pa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Tarihte 2 Eylül günü 0 olay var, Detaylar..
 
Saat
 
Kayan Yazı
Nekadar Bilirsen bil söylediklerin Karsindakinin anliyabildigi kadardir!


Güçlü kimse baskalarinin sirtini yere getiren degil sinirlendiginde öfkesine hakim olabilendir..


Hayatta ne yapacagini pek çok insan bilir ama bildigini yapan insanlarin sayisi çok azdir.


Insan yasamak için dogmustur, yasamaya hazirlanmak için degil.


Hayatta tozu dumana katarsin ya da tozu dumani yutarsin.


Hiç basarisiz olmayanlar hiçbir sey yapmamis olanlardir.


Sans hazirlikli olarak firsatlarla karsilasmaktir.


Ne kadar mutlu olmaya karar vermisseniz o kadar mutlu olursunuz.


Gideceginiz yeri bilmiyorsaniz, vardiginiz yerin önemi yoktur. P.Drucker


Dogru yolda giden kaplumbaga egri yolda giden yaris atini geçer. J. J. Rousseau


Hiç kimse basari merdivenine elleri cebinde tirmanmamistir. Konfüçyüs


Uçurtmalar, rüzgar kuvvetiyle degil, bu kuvvete karsi uçtuklari için yükselirler. William Churchill


Akilli adam, aklini kullanir. Daha akilli adam, baskalarinin aklini da kullanir. Resat Bozkurt


Deha, insanin kendi atesini yakmasidir. J.Foster


Hayatinizi cesurca kabullenin, basariya dönüstügünü göreceksiniz. Emerson


Çok konusan az is yapar. Schiller
 
Google'da Ara
..Buraya Yaz..
 
2006 © Copyright AspSitem.com (Bu site AspSitem v2.0 kullanilarak hazirlanmistir.)
Website motoru © 2007 AspSitem Ay Yildiz.
Bu sayfa: 0,39 saniyede yorumlandı.
Creative Commons License