Re: [Linux-programlama] A Fark B (SQL)

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Serdar KÖYLÜ (serdarkoylu@fisek.com.tr)
Date: Mon 24 Jan 2005 - 16:34:11 EET


Selamlar...

Eğer, olayın hepsi buysa (C kodu olan mesaja da bakarak), neden MYSQL
vs. kullanmaya çalışıyorsunuz? Bu gereksiz bir sürü vakit kaybına
yolaçıyor zaten.

Bence, öncelikle kayıtların bir hash'ını elde edin. Basitçe crc32 vs.
işinizi görecektir sanıyorum. Böylece, veriyi daha kolay
karşılaştırılabilir int formatına çevirmiş olursunuz. Ardından bunları
bir SQL sunucuya yazmaktansa b-tree sürülen kayıt tabanlı bir
veritabanına filan yazın. BerkeleyDB bu işlerde bir hayli iyidir. Diğer
yandan kaydı yaparken hemen önce kaydın diğer tablolardaki durumunu
kontrol edin.

Matematik kavramlar iyidir ama, bilgisayar dünyasında matematiğin yorumu
bir hayli farklı olur. X + Y işlemi matematik için bir terimden
ibarettir, fakat bilgisayar için bir sürü farklı yöntem, yaklaşım
anlamına gelebilir. Basit matematik karşılıkları doğrudan bu şekilde
kullanmak genelde sorun çıkarmaz, fakat böyle performans kritik
konularda vs. ince detayları düşünmek gerekir.

(val1 == val2) generic işlemi, matematikçi gözünde sadece bir
karşılaştırma olabilir. Ama yazılım geliştiren için bu, val*'in sayı,
integer, float, string, ufacık string, kocaman bir string, array vs.
olmasına göre çok farklı şeyler ifade eder.

Kısacası, kümelerin karşılaştırılması işlemi değilde, bu veriler en
başta nereden geliyor. Bunları neden bir sürü tabloya yayıyorsunuz,
neden farklarına ihtiyaç duyuyorsunuz vs. sorularının cevapları bize yön
gösterecektir.

Saygı ve sevgiler..

> On Mon, 24 Jan 2005 15:44:24 +0200, Serdar KÖYLÜ
> <serdarkoylu@fisek.com.tr> wrote:
> > Selamlar..
> >
> > Pek bir şey anlamadım ama, anladığım uygulamanızın yapısında bir sorun
> > olduğu.
>
> Hocam insallah bu sekilde daha anlasilir olurum :
>
> Elimde ayni database_name de bulunan
> iki farkli table var.
> table a (field varchar(128))
> table a+ (filed varchar(128))
>
> ve bu table icerigi su sekilde
> table a:
> aaa aab aac abc abd abf aca acb ace ada adc adf .... .... .....
> table a+:
> aaa aac aad abc abd abg abk aca acb ada adf ... ... ....
>
> seklinde (ornegi uc harfli verdim ama 3 harf olarak anlasilmasin)
> benim istedigim table larda farkli olan degerleri elde etmek
> matematikteki a/a+ islemi gibi dusunebiliriz. (Bknz. Kumelerde Fark islemi)
>
> Yalniz akilda bulunulmasi gereken bir nokta mevcut
> bir table daki kayit sayisi 2 3 milyon civarinda
> bu sekilde [A-Z] ve [0-9] table larim var. (Sanirim 60 kusur table)
> Genel toplamda 80 milyon kusur kaydim plus siz table larda (30 kusur table)
> 80 milyon kusur kaydim da plus li table larda (30 kusur table) var ...
>
> Bu islemim her gun calisacak ve her gun bu table lar yenilenecek
> ve 24 saat icinde bana bu tum table lardaki farklari vermesi gerekecek
> (a/a+ , b/b+, ..... 0/0+, .... ,9/9+ seklinde)
>
> Sizce bu islemi en hizli nasil gerceklestiririm?
> Veritabani olarak Firebird kullaniyorum Egerki cok hizli bir sekilde
> yapacaksa diger veritabanlarini da kullanabilirim.

_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.