Bir gerçekten bahsedeyim ki bu işlem neredeyse imkansız. milyarlarca satırı bir kez join etmek milyar^2 kadar satırla çalışmaktan daha karmaşık. saatlerce sonuç beklemek zorunda kalırsınız. bunun yerine sorgulama yapacağınız şekillerde tablolar oluşturmanız gerekebilir. Materialized tablolar gerekebilir. bunlarda mysql de yok henüz. lucene gibi indexleme mantıkları ile çalışmanız gerekebilir. bu da 17 gb verinizi kat kat artıracaktır, mysql de norma bir bilgisayarda 10.000 satırlık iki tabloyu join işlemi saniyenin 100 de birinde yapılabilirken 4 mln satırlı iki tabloda join 15 dk sürebilir. gerisini siz düşünün.
bence tam olarak ihtiacınız olan şeyleri belirlemeli ona göre indexleme yapmalısınız, veritabanları işinizi göremeyebilir.. 2009/6/23 Ahmet YILDIRIM <[email protected]> > Cok tesekkurler Serdar Bey, > > Bu komut aslinda cok ise yarar birseye benziyor. > > Benim asil merak ettigim, bu joinleri yapabilecek miyim? > > Benim istedigim yanit daha cok depolama motoru, ve benim kullanacagim > tablolarin nasil olamasi gerektigi? > Gerekirse bir script ile import edeirm datayi ama iste bu join > operasyonlari felan icin nasil bir yapida olmasi gerekir dbnin? > > > > 2009/6/23 serdar güler <[email protected]> > > Ahmet bey merhaba, >> >> Anlattıklarınızdan anladığım kadarıyla mysql in myisam tablo tipi tam >> işinizi görecek gibi duruyor. Peki bu kadar çok veriyi oluşturduğum tabloya >> nasıl gireceğim derseniz, load data infile komutunu incelemenizi öneririm. >> >> kolay gelsin... >> >> On 6/23/09, Ahmet YILDIRIM <[email protected]> wrote: >> >>> Merhabalar, >>> >>> Elimde satirlardan buyuk dosyalar var. Dosyalarin toplam boyutu 17 GB >>> kadar >>> >>> Dosyalarin ve satrilarin formati: >>> >>> String1_1 String1_2 String1_3 String1_4 >>> String2_1 String2_2 String2_3 String2_4 >>> ... >>> ... >>> StringN_1 StringN_2 StringN_3 StringN_4 >>> >>> Seklinde >>> >>> Yani dosyanin icinde her satirda 4 stringden olusan bir yapi var. >>> >>> Yaklasik 1 milyar satir var elimde toplamda bu dosyalardan gelen. >>> >>> Bu stringlerin hepsi farkli degil, ayni olanlar da var. Hatta buyuk >>> cogunlugu ayni olabilir. Yani bir string birden farkli satirda birden frakli >>> sirada (yani bir satirda 1. string iken baska bir satirda 3. string >>> olabilir) gecebilir. >>> >>> Sorum su sekilde; >>> >>> Bana oyle bir acik kaynak kodlu veritabani sistemi onerin ki, >>> ve bana oyle bir depolama yapisi onerin ki, >>> >>> Ben bu satirlari veritabanina gireyim, ve mesela "aBAHSNAdjhaD" >>> stringinin gectigi satirlari goster dedigimde hemen gostersin o satiri veya >>> satirlari. >>> >>> Hatta kendisiyle join edebileyim. yani su turden bir sorgu >>> >>> String1i "ahsjajhah" olan satirlardan, string2si, herhangi baska bir >>> satirdan string3e esit ise, o satirin string4u nedir? >>> >>> Yani eger hepsi bir tabloda ve bu formatta sutunlara girmis olsaydim suna >>> benzer bir sogru olacakti: >>> >>> Select Tablo2.String4 FROM Tablo AS Tablo1, Tablo AS Tablo2 WHERE >>> Tablo1.String1='ahsjajhah' AND Tablo1.String2=Tablo2.String3 >>> >>> >>> Bu sekilde join sayisi da artabilir. Yani 7-8 defa bu sekilde kendisiyle >>> join ettirme durumum olabilir. >>> >>> Cok zor mu boyle birseyi yapmak? >>> >>> Simdiden tesekkurler >>> Ahmet YILDIRIM >>> >>> Not: Tablo simdilik, veriler bir defa girildikten sonra sadece read >>> islemi yapilacakmis gibi dusunulebilir. Ama ilerde hem select hem insert >>> islemleri olacak. >>> >>> >>> _______________________________________________ >>> Linux-programlama mailing list >>> [email protected] >>> http://liste.linux.org.tr/mailman/listinfo/linux-programlama >>> >>> >> >> >> -- >> Serdar Güler >> >> _______________________________________________ >> Linux-programlama mailing list >> [email protected] >> http://liste.linux.org.tr/mailman/listinfo/linux-programlama >> >> > > _______________________________________________ > Linux-programlama mailing list > [email protected] > http://liste.linux.org.tr/mailman/listinfo/linux-programlama > > -- Elvin Şiriyev http://siriyev.net
_______________________________________________ Linux-programlama mailing list [email protected] http://liste.linux.org.tr/mailman/listinfo/linux-programlama
