[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: что быстрее
PiratXXX
Добрый вечер!

нужно определить, что именно будет быстрее, какая примерно разница в времени выполнения запроса если он будет выполняться около (10 000) раз одновременно.

Вариант 1

$a = "str";
$b = "str";

$c = $a."||".$b;

$q1 = mysql_query("INSERT INTO `table` (`c`) VALUES ('".$c."')");

//////////////////////////////////////////////////////////////////////////////////////////////////// //

$q2 = mysql_fetch_array(mysql_query("SELECT * FROM `table` WHERE `id` = 'id'"), MYSQL_ASSOC);

list($a, $b) = explode("||", $q2['c']);



или же

Вариант 2

$a = "str";
$b = "str";

$q1 = mysql_query("INSERT INTO `table1` (`a`) VALUES ('".$a."')");
$q1 = mysql_query("INSERT INTO `table2` (`b`) VALUES ('".$b."')");

//////////////////////////////////////////////////////////////////////////////////////////////////// ///

$q2 = mysql_fetch_array(mysql_query("SELECT * FROM `table1` WHERE `id` = 'id'"), MYSQL_ASSOC);

$a = $q2['a'];

$q2 = mysql_fetch_array(mysql_query("SELECT * FROM `table2` WHERE `id` = '".$a."'"), MYSQL_ASSOC);

$b = $q2['b'];


в каждом вареанте первая часть кода заносим(В ОДНОМ ФАЙЛЕ), вторая часть кода (ДОСТАЕМ В ДРУГОМ ФАЙЛЕ).

что-то мне подсказывает что первый вариант быстрее, но второй вариант мне более выгоден...

одновременно будет выполняться вторая часть...



Спустя 7 минут, 52 секунды (18.01.2011 - 19:05) SlavaFr написал(а):
Цитата (PiratXXX @ 18.01.2011 - 15:57)
что-то мне подсказывает что первый вариант быстрее, но второй вариант мне более выгоден...

а ты не думай и не годай, а возьми и проверь при помощи
microtime и memory_get_usage. как делать циклы ты наверное уже знаеш.

Спустя 25 минут, 30 секунд (18.01.2011 - 19:30) Guest написал(а):
SlavaFr

спасибо а то я чет запарился, пора передыхнуть, пивка чель бахнуть)))

ну а теперь о результатах:

Вариант 1 САМЫЙ БЫСТРЫЙ!
2.1712970733643
кстати интересное наблюдение что если записать так

$q2 = mysql_fetch_array(mysql_query("SELECT * FROM `table` WHERE `id` = 'id'"), MYSQL_ASSOC);

$r = mysql_fetch_array($q2, MYSQL_ASSOC);

list($a, $b) = explode("||", $r'c']);

то результат ухудшаеться 2.2080888748169

ну и вариант 2
4.0892100334167

Спустя 2 часа, 27 минут, 8 секунд (18.01.2011 - 21:57) sergeiss написал(а):
А можно скромно поинтересоваться - каков смысл этих телодвижений, с какой целью делаются эти запросы? Исходя из этого и можно что-то сравнивать. А не просто "тупо" по времени. Потому что в каких-то случаях надо будет вообще по-другому написать smile.gif И время выполнения будет совсем другим.

Спустя 3 часа, 25 минут, 19 секунд (19.01.2011 - 01:23) PiratXXX написал(а):
sergeiss

очень хороший вопрос!)

данные тело движения проводяться с целью...

ну вообщем вот например при регистрации где нибудь нас прсять ввести инфу, получаеться что-типа (Имя: Иван),

вместо "Иван" можно написать что угодно, а вот как быть с "Имя", и подомул а почему бы не разрешить пользователю чтобы он писал как "наименование инфы", так и "саму инфу"...

ну так я и пришел ко всем этим телодвижениям...

Спустя 8 часов, 23 минуты, 15 секунд (19.01.2011 - 09:46) sergeiss написал(а):
PiratXXX, чегой-то "не очень" такая реализация... Получается, что ты вводишь кучу всего в одно поле. Лучше внести это в разные поля. Иначе потом найти что-то будет очень сложно.
В данном случае лучше бы сделать поля "Имя" и "Инфа". И четко их разделять. И еще лучше, если "инфа" будет выбираться из некоего списка. Тогда еще проще будет вести поиск, потому что можно будет проиндексировать грамотно и каши в данных не будет.

В БД это будет выглядеть (примерно) так:
Таблица со списком типов инфы:
id_info | info_descr
1 | Имя
2 | Фамилия
3 | Кликуха (ник-нейм)
....

Основная таблица
id_user | id_info | info
23 | 1 | Иван
23 | 3 | Ник_Иван
25 | 1 | Серёга
....

Спустя 44 минуты, 19 секунд (19.01.2011 - 10:30) linker написал(а):
PiratXXX
Мне так лень заполнять все эти формы и упаси боги, если меня еще кто-то заставит писать вместо просто "Денис" - "Имя Денис". Руки оборву.


_____________
http://flibro.com/
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.