[Linux-programlama] Re: mysql 40 milyon kayitlik tablonun field tipini degistirmek

---------

[Linux-programlama] Re: mysql 40 milyon kayitlik tablonun field tipini degistirmek

From: Husrev <wapper_at_gmail.com>
Date: Fri, 4 Apr 2008 18:31:41 +0300
Message-ID: <2170f9a80804040831y709e350bua91b16372471b424@mail.gmail.com>

ooh, bi de set_time limit(0); koyar,
command line'dan phpyi çalıştırır bırakırsın.
localde değilse ssh ile bağlanırsın, ssh yoksa cpanel'den cron'a
bırakabilirsin, vs. vs..
2008/4/4 Atıf CEYLAN <atifceylan_at_gmail.com>:

>
> ismail aşcının da bahsettiği gibi buffer size, sort buffer size bunları
> bi oyna ama cok değişmez.
> eğer güçlü bir makinen varsa ve tablo tipin innodb ise (satır bazlı
> kilitleme yapabildiği için dedim myisam da da denenebilir) şöle bir
> yöntem izleyebilirsin.
> öncelikle yeni tablonu creat et. ve daha sonra senin için yazdığım
> aşağıdaki php betiğini kendine göre düzenle ve çalıştır bakalım ne
> olacak :)
>
> Not : betik birden fazla süreç açarak aynı anda birden fazla veri
> yazmaya calışır. umarım işe yarar.
>
>
> <?php
>
> $db = mysql_connect('localhost', 'kullaniciadim', 'veritabanisifrem');
>
> function aktar($db, $carpim, $carpilacak)
> {
>
> $lm=$carpim*$carpilacak;
>
> $query = mysql_query("select alan1,alan2 from table1 where limit
> $lm,$carpilacak",$db);
>
> while($row = mysql_fetch_array($query))
> {
> mysql_query("insert into table2 (alan1,alan2)
> values('$row[alan1]','$row[alan2]')",$db);
> }
> }
>
> $query = mysql_query("select count(alan1) from table1");
>
> if ($num = mysql_fetch_array($query))
> {
>
> $ToplamProccess = 10;
> $SuankiProccess = 0;
>
> $carpilacak=($num[0]) / (10);
>
> $carpilacak=ceil($carpilacak);
>
> while ( $SuankiProccess <= $ToplamProccess )
> {
>
> $prgid = pcntl_fork();
>
> if ( $prgid == 0) {
>
> $SuankiProccess++;
>
> }else{
>
> aktar($db, $SuankiProccess,$carpilacak);
>
> exit();
>
> }
> }
>
> }
>
> mysql_close($db);
>
> ?>
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama_at_liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>

-- 
Husrev
husrev_at_ozayman.com

_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Fri 04 Apr 2008 - 17:47:30 EEST

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.