Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Загрузка файлов в базу MySQL

Сообщения:  [1-10]    [11-20]  [21-21] 

 
 автор: DarkLord   (02.05.2006 в 14:36)   письмо автору
 
   для: cheops   (02.05.2006 в 11:53)
 

Хорошо.
Сделал новую тему в разделе MySQL:
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=16911&page=1
Переношу обсуждение вопросов туда.

   
 
 автор: cheops   (02.05.2006 в 11:53)   письмо автору
 
   для: DarkLord   (02.05.2006 в 09:20)
 

А что хотите настроить и для каких целей?

PS Под новые вопросы лучше заводить новые темы в разделе MySQL

   
 
 автор: DarkLord   (02.05.2006 в 09:20)   письмо автору
 
   для: DarkLord   (10.03.2006 в 11:30)
 

> MySQL оптимизируется под каждую операционную систему отдельно...
> Более того в Windows (как в прочем и Linux) она себя чувствует лучше, чем даже в FreeBSD...

А где взять рекомендации (или статьи) по оптимизации работы MySQL под Windows ?

   
 
 автор: cheops   (14.03.2006 в 14:24)   письмо автору
 
   для: DarkLord   (14.03.2006 в 11:28)
 

MySQL оптимизируется под каждую операционную систему отдельно... Более того в Windows (как в прочем и Linux) она себя чувствует лучше, чем даже в FreeBSD...

   
 
 автор: DarkLord   (14.03.2006 в 11:28)   письмо автору
 
   для: Trianon   (14.03.2006 в 10:29)
 

Если я не ошибаюсь, то Apache и MySQL первоначально создавались для Unix систем и, естественно, больше оптимизированы для них.
Могу накатать еще кучу тестов, на выборках из базы и пр. на которых будет видно это преимущество, но мне лень. А по поводу данного примера, то, конечно, выберу оптимальный размер блока, но уже ближе к завершению написания программы.

По поводу удобства администрирования (не говоря уже о надежности) я все чаще свой выбор делаю в пользу Linux..

   
 
 автор: Trianon   (14.03.2006 в 10:29)   письмо автору
 
   для: DarkLord   (14.03.2006 в 10:14)
 

По-моему, время выполнения в разных ОС отличается не на порядок. И даже не в разы. Так что выбор ОС жестко на этом аспекте не завязан, и его можно выполнять по другим критериям. Например, по удобству администрирования Вами, по уровню имеющегося опыта работы, или пр.

Попробуйте поиграть блокинг-фактором. Увеличить в 2-10 раз, уменьшить в 2-10 раз. Возможно, что при увеличении блокинг-фактора, скорость еще вырастет. Главное, не перестараться. Найти значение, при котором рост становится уже незначительным, и на нем работать. Это позволит и память сэкономить и время особо не тратить.

   
 
 автор: DarkLord   (14.03.2006 в 10:14)   письмо автору
 
   для: Trianon   (13.03.2006 в 16:53)
 

Докладываю. ;-)

Системник: процессор Celeron 1,7 Ghz, 384 Mb оперативки.

1-ая система: Windows 2000pro, Apache 2.0.52, MySQL 4.1.14, PHP 5.0.2
2-ая система: ALTLinux 2.4 Master, Russian Apache PL30.20, MySQL 4.0.20, PHP 4.3.9

Размера оперативной памяти в системе хватало.

Тестировал на лог-файлах след размерах:
1. 419 Kb, 15000 записей
2. 3,3 Mb, 113851 записей
3. 3,7 Mb, 129433 записей

Результаты тестирования (время работы скрипта в секундах):

1 2
1 1,9 1,25
2 15,3 10,00
2 16,8 11,00

Очевидны преимущества использования Linux.


DarkLord

ЗЫ Я и стремлюсь чтоб с PHP все было хорошо, но и желательно
получать от этой деятельности не только моральное удовлетворение.

   
 
 автор: Trianon   (13.03.2006 в 16:53)   письмо автору
 
   для: DarkLord   (13.03.2006 в 16:28)
 

Сколько времени выполняется? При каком блок-факторе? На какого размера логе? Интересно же...
А PHP я тоже недавно изучаю. Так что у Вас тоже скоро все будет ОК :)

   
 
 автор: DarkLord   (13.03.2006 в 16:28)   письмо автору
 
   для: Trianon   (13.03.2006 в 14:09)
 

Спасибо за великолепный пример.
Действительно все заработало на отлично.
Не судите меня сильно строго - я начал программировать на PHP недавно,
и уровень у меня невысокий.

Тем не менее все вышеизложенное моего последнего мнения не меняет.

   
 
 автор: Trianon   (13.03.2006 в 14:09)   письмо автору
 
   для: DarkLord   (13.03.2006 в 12:28)
 

Мне стало грустно. Настолько, что я написал вот это:

<?php 
// ставим скрипт "на счетчик" (чтобы знать, как долго он выполнялся 
$ttt=microtime(); 
$ttt=((double)strstr($ttt' ')+(double)substr($ttt,0,strpos($ttt,' '))); 


$j=0$blk_factor 16384;
$handle fopen("test.txt""r");
$block ''$sep "\n";
while (!
feof($handle))
{
    
$block .= fread($handle$blk_factor);
//    $buffer=str_replace(array("\r", "\n"), array("#", $sep), $buffer);
    
$lines explode($sep$block);
    
$cnt count($lines);

    
$block $cnt <= || substr($block,-1,1) == $sep
                 
"" :   $lines[--$cnt];
    if(
$block != "")
       unset(
$lines[$cnt]);
    
$query="insert into sessions (dat, num) values ";  $rsep '';
    foreach(
$lines as $buffer)
    {
      
$buffer=ltrim($buffer);
      
$mbuf=substr("$buffer",0,10);
      if (
ereg ("([0-9]{2})/([0-9]{2})/([0-9]{4})"$mbuf))
      {
        
$j++;
        list(
$day$month$year$hour$minute$second$num) = sscanf($buffer"%d/%d/%d %d:%d:%d %d");
        
//echo "Строка $j прочитана.<br>";

        
$isodate sprintf("%04d-%02d-%02d %02d:%02d:%02d"$year$month$day$hour$minute$second);

        
$query .= "$rsep('$isodate', '$num')"$rsep ',';
      }
    }
    if(
$result=mysql_query($query)) echo "Сеансы связи записаны по : $isodate $num <br>";
    else echo 
"<font color=red><b>Ошибка записи сеанса связи.</b></font><br>";

}

fclose($handle);

// считаем, как долго работал скрипт 
$ddd=microtime(); 
$ddd=((double)strstr($ddd' ')+(double)substr($ddd,0,strpos($ddd,' '))); 

echo (
"<br>Время индексации: ".(number_format(($ddd-$ttt),3))." секунд<br>"); 
?>


Поглядите... поиграйте параметром blk_factor.
И подумайте, о том, что стоит сократить бешеную работу оценки синтаксиса строк.
Думаю, кое-какой эффект Вы увидите.

PS. Для отладки я использую echo '<pre>'; print_r($var); А под средствами диагностики имел в виду error_reporting = E_ALL в php.ini.

   

Сообщения:  [1-10]    [11-20]  [21-21] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования