так что лучше PDO или mysql
1.
Вусал (19.11.2011 / 04:56)
друзья расскажите пожалуйста... что лучше и быстрее?
просто испольновать mysql функциями (например: mysql_query(), mysql_fetch_array() и т.п) или лучше использовать PDO как в роторе и именно с этими классами которые в роторе?????
2.
Вусал (19.11.2011 / 12:12)
люди добрые... мне важно ваше мнение!!!
у меня весь сайт на mysql и вот думаю стоит ли переписывовать весь код на PDO?!
3.
XoPyC (19.11.2011 / 12:16)
смотря какая нагрузка будет
4.
Вусал (19.11.2011 / 12:20)
соц сеть будет... в скорем будет большая...
5.
Александр (19.11.2011 / 12:21)
Пдо имеет больше возможностей, но создает чуть большую нагрузку.
Добавлено через 01:27 сек.
я лично остановился на объектном mysqli
6.
ICE (19.11.2011 / 12:35)
mysqli, pdo, а mysql расширение будет удалено.По мне удобно pdo.
7.
Вусал (19.11.2011 / 12:39)
я разбираюсь и в pdo , mysqli хорошо... только вот же все таки из них лучше... что более подойдет для сайта с большой посещаемостью?
8.
ramzes (19.11.2011 / 13:05)
Без разницы.
9.
Вусал (19.11.2011 / 15:52)
8.
ramzes, ты бы что выбрал бы?
10.
Станислав (19.11.2011 / 16:18)
mysql
11.
Вусал (19.11.2011 / 17:00)
SNELS (19 Ноября 2011 / 17:18)
mysql
у меня сейчас и состоит сайт из mysql, чтоб посоветовал бы? Не менять, оставить все как есть?
12.
Станислав (19.11.2011 / 17:11)
Да нафиг тебе этот геморрой? Что-то менять ещё. Справляется он со своей задачей? Вот и чудно, что да. Не вижу смысла заморачиваться.
Чем масштабней проект - тем сервер мощнее нужен, чем мощнее сервер - тем лучше он справляется с поставленными задачами. А кто будет делать крупный проект на слабом сервере?
13.
ICE (19.11.2011 / 17:13)
Как из php удалят mysql и хостинг обновит пакет, тогда уже стоит задуматься.
14.
Станислав (19.11.2011 / 17:15)
13.
ICE, поддержку mysql никто не уберёт.
15.
ramzes (19.11.2011 / 18:27)
9.
ТАЛЫШ, я с самого начала mysqli использую
Пдо не перевариваю за дибильный синтаксис
Добавлено через 01:51 сек.
SNELS (19 Ноября 2011 / 17:15)
13. ICE, поддержку mysql никто не уберёт.
Уберут, не мускула а функций mysql_*
16.
Вусал (19.11.2011 / 20:24)
а еще я вроде где то читал что Пдо безопаснее?
17.
ramzes (19.11.2011 / 20:51)
16.
ТАЛЫШ, безопаснее чем что?
Чем мускули? Нет.
Безопаснее писать без ошибок))
18.
Станислав (19.11.2011 / 20:59)
ramzes (19 Ноября 2011 / 20:27)
Добавлено через 01:51 сек.
Уберут, не мускула а функций mysql_*
Не так я выразился немного =) В смысле, что никто не запретит использовать такую версию php, в которой это всё работает =)
19.
ZaRiN (19.11.2011 / 21:31)
Я использую Mysqli меня полностью устраивает.
20.
JustZero (19.11.2011 / 21:32)
лучше то, что ты лучше знаешь
21.
Вусал (20.11.2011 / 02:03)
19.
Жадный лепрекон, оъективный стиль??)))
22.
Lugaro (20.11.2011 / 02:15)
SNELS (19 Ноября 2011 / 19:59)
Не так я выразился немного =) В смысле, что никто не запретит использовать такую версию php, в которой это всё работает =)
Только вот не какой работы над ошибками не будет
23.
Вусал (20.11.2011 / 03:28)
я переписал часть кода на пдо... время генераци увеличелось с 0.0058 до 0.0061... взял класс как в роторе... как думаете это нормально???
Добавлено через 01:12 сек.
нормально - имею в виду что слегка увеличилась время генерации...
24.
Андрей (20.11.2011 / 03:38)
ТАЛЫШ (19 Ноября 2011 / 20:24)
а еще я вроде где то читал что Пдо безопаснее?
Безопаснее, он защищает от sql инъекций.
25.
ramzes (20.11.2011 / 03:39)
ТАЛЫШ (20 Ноября 2011 / 03:28)
я переписал часть кода на пдо... время генераци увеличелось с 0.0058 до 0.0061... взял класс как в роторе... как думаете это нормально???
pdo медленнее чистого мускула
Добавлено через 01:12 сек.
нормально - имею в виду что слегка увеличилась время генерации...
Добавлено через 01:08 сек.
Барыга Обама (20 Ноября 2011 / 03:38)
Безопаснее, он защищает от sql инъекций.
мозг должен защищать от иньекций, и по моему он не защищает, защищает все тот же сервер мускула, при обработке шаблонов запросов, и только их
26.
Вусал (20.11.2011 / 04:00)
а что на счет поста 23?
27.
Lugaro (20.11.2011 / 04:07)
26.
ТАЛЫШ, ты на эту мелочь не смотри, от этого твоему серверу нечего не будет, а вот неправильная структура бд и ущербные запросы, вот тут нужно думать про нагрузку.
28.
ramzes (20.11.2011 / 05:27)
ТАЛЫШ (20 Ноября 2011 / 04:00)
а что на счет поста 23?
Пдо медленнее чистых мускул запросов
29.
Дмитрий (20.11.2011 / 06:53)
немаловажную роль играет класс-оболочка, обрабатывающая запросы. Если ты юзаешь уг-класс, то даже идеально построенный запрос к идеальной БД будет обрабатываться медленно.
30.
Виталий (20.11.2011 / 12:01)
что-то я все обгуглил на счет скорости pdo, но там говорится совсем обратное
Скрытый контент: Для выполнения действия необходимо авторизоваться!
Добавлено через 03:23 сек.
ТАЛЫШ (20 Ноября 2011 / 03:28)
я переписал часть кода на пдо... время генераци увеличелось с 0.0058 до 0.0061... взял класс как в роторе... как думаете это нормально???
Добавлено через 01:12 сек.
нормально - имею в виду что слегка увеличилась время генерации...
используй тогда обычные функции mysql. вот в php6 этих функций скорее всего не будет
31.
Александр (20.11.2011 / 12:10)
php6 выйдет не скоро
32.
An0nimous (20.11.2011 / 12:17)
mysql.php 6 ох как нескоро выйдет
33.
Дмитрий (20.11.2011 / 12:40)
An0nimous (20 Ноября 2011 / 11:17)
mysql.php 6 ох как нескоро выйдет
это не отговорка, чтобы писать ерунду в коде.
34.
Вусал (20.11.2011 / 13:36)
dima.london (20 Ноября 2011 / 07:53)
немаловажную роль играет класс-оболочка, обрабатывающая запросы. Если ты юзаешь уг-класс, то даже идеально построенный запрос к идеальной БД будет обрабатываться медленно.
а как лучше?
Использовать классы как в роторе или обойтись совсем без всяких классов?
35.
Александр (20.11.2011 / 13:52)
34.
ТАЛЫШ,
Лучше создать свой класс операций с БД со своими, удобными тебе, функциями
36.
Вусал (20.11.2011 / 14:06)
35.
rastoman, можно конечно... Но все время думается что сделаю какой нибудь косяк...
37.
Вантуз-мен (20.11.2011 / 14:19)
PDO это такая оболочка которая позволяет работать сразу с несколькими типами баз данных, к примеру mysql, sqlite, firebird, pdo встроен в ядро php и позволяет работать с mysqlnd, если сравнивать его с mysql который ставится как модуль php, то конечно pdo быстрее, к тому же его проще масштабировать
Нужно ли писать свою собственную оболочку, без сомнения да, стандартными методами, там довольно неудобно пользоваться
Если нужно удобство, то пользуйтесь ORM doctrine2, который даже круче всяких других orm в других языках, например activeRecord в руби или питоне
доктрина работает через pdo это и есть своя оболочка
написали один раз карту в yaml сделали связи, сгенерировали модели и вперед
если что могу проконсультировать по доктрине
38.
ramzes (20.11.2011 / 14:26)
Тут была тема, гоняли по 5к запросов на пдо, мускули, мускул. Мускули выиграл как мне помниться
39.
Вусал (20.11.2011 / 14:29)
вот и не знаешь кому верить кто прав??
40.
ramzes (20.11.2011 / 14:36)
http://visavi.net/forum/topic.php?tid=23716&start=40& 43 пост
41.
Вусал (20.11.2011 / 14:43)
40.
ramzes, prepare это сделан тоже через mysqli?
42.
ramzes (20.11.2011 / 14:47)
41.
ТАЛЫШ, да, тоже есть подготовленные выражения как и в пдо
43.
Вусал (20.11.2011 / 14:54)
а какая там будет генерация если пдо?
44.
ramzes (20.11.2011 / 15:15)
Там где то в той теме есть и сравнение с пдо.
Он быстрее только за счет 5000 запросов с подготовленным выражением, разовые запросы те быстрее по моему. А аообще, все это дело вкуса, если на странице 50 запросов то это не на пдо или мускули переходить надо, а думать об оптимизации
имхо конечно, но все уперается в код а не в сервер всегда
45.
Вусал (21.11.2011 / 02:44)
на моих тестах PDO быстрее MySQLi, как миниму в
2 раза!!!
Добавлено через 05:48 сек.
но если использовать в mysqli
real_query то тут уже будет быстрее mysqli чем PDO!!!!
46.
Вусал (21.11.2011 / 02:56)
сам код теста
<table border="1px">
<tr>
<td>
<center>---------------<h3> MySQLi </h3></centr>
<?
$ar = 30;
$sql = 'SELECT * FROM `smiles` LIMIT 1';
/////// MySQLi ///////
$start_array = explode(" ",microtime());
$start_time = $start_array['1'] + $start_array['0'];
$mysqli = new mysqli('localhost', 'fr4718_base', 'ajtajt22', 'fr4718_base');
$mysqli -> query("SET NAMES 'utf8'");
for($i=1;$i<$ar;$i++){
$result = $mysqli -> query($sql) -> fetch_assoc();
echo $i.') '.$result['smiles_name'].'<br /><br />';
}
$end_time = microtime(); $end_array = explode(" ",$end_time);
echo '<center><h3> MySQLi </h3></centr><br>';
$mysqli->close();
echo round((($end_array['1'] + $end_array['0']) - $start_time),4).'сек.<hr />';
?>
</td>
<td>
<center>---------------<h3> MySQL </h3></centr>
<?
/////// MySQL ///////
$start_array2 = explode(" ",microtime());
$start_time2 = $start_array2['1'] + $start_array2['0'];
mysql_connect('localhost', 'fr4718_base', 'ajtajt22');
mysql_select_db('fr4718_base'); mysql_query('SET NAMES utf8');
for($i=1;$i<$ar;$i++){
$result = mysql_fetch_assoc(mysql_query($sql));
echo $i.') '.$result['smiles_name'].'<br /><br />';
}
$end_time2 = microtime(); $end_array2 = explode(" ",$end_time2);
echo '<center><h3> MySQL </h3></centr><br>';
echo round((($end_array2['1'] + $end_array2['0']) - $start_time2),4).'сек.<hr />';
?>
</td>
</td>
47.
Вусал (21.11.2011 / 02:57)
<td>
<center>---------------<h3> PDO </h3></centr>
<?
/////// PDO ///////
$start_array3 = explode(" ",microtime());
$start_time3 = $start_array3['1'] + $start_array3['0'];
$pdo = new PDO('mysql:host=localhost;dbname=fr4718_base', 'fr4718_base', 'ajtajt22');
$pdo->query("SET NAMES 'utf8'");
for($i=1;$i<$ar;$i++){
$result = $pdo->query($sql)->fetch(PDO::FETCH_ASSOC);
echo $i.') '.$result['smiles_name'].'<br /><br />';
}
$end_time3 = microtime(); $end_array3 = explode(" ",$end_time3);
echo '<center><h3> PDO </h3></centr><br>';
$pdo = null;
echo round((($end_array3['1'] + $end_array3['0']) - $start_time3),4).'сек.<hr />';
?>
</td>
<td>
<center>---------------<h3> PDO prepare </h3></centr>
<?
/////// PDO prepare///////
$start_array3 = explode(" ",microtime());
$start_time3 = $start_array3['1'] + $start_array3['0'];
$pdo = new PDO('mysql:host=localhost;dbname=fr4718_base', 'fr4718_base', 'ajtajt22');
$pdo->query("SET NAMES 'utf8'");
$res = $pdo->prepare($sql);
for($i=1;$i<$ar;$i++){
$names = array();
$res->execute($names);
$result = $res->fetch();
echo $i.') '.$result['smiles_name'].'<br /><br />';
}
$end_time3 = microtime(); $end_array3 = explode(" ",$end_time3);
echo '<center><h3> PDO prepare</h3></centr><br>';
$pdo = null;
echo round((($end_array3['1'] + $end_array3['0']) - $start_time3),4).'сек.<hr />';
?>
</td>
48.
Вусал (21.11.2011 / 02:58)
<td>
<center>---------------<h3> MySQLi real </h3></centr>
<?
$start_array4 = explode(" ",microtime());
$start_time4 = $start_array4['1'] + $start_array4['0'];
$mysqli = new mysqli('localhost', 'fr4718_base', 'ajtajt22', 'fr4718_base');
$mysqli -> query("SET NAMES 'utf8'");
for($i=1;$i<$ar;$i++) {
$res = $mysqli->real_query($sql);
$res = $mysqli->store_result()->fetch_assoc();
echo $i.') '.$result['smiles_name'].'<br /><br />';
}
$end_time4 = microtime(); $end_array4 = explode(" ",$end_time4);
echo '<center><h3>mysqli_real</h3></centr><br>';
echo round((($end_array4['1'] + $end_array4['0']) - $start_time4),4).'сек.<hr />';
?>
</td>
</tr>
</table>
Добавлено через 04:18 сек.
[URL=http://www.radikal.ru][IMG]http://s56.radikal.ru/i152/1111/ac/6733954eaed9.jpg[/IMG][/URL]
Добавлено через 05:24 сек.
30 одинаковых запросов...
Добавлено через 08:56 сек.
P.S. я видно забыл зашифрововать свои данные от базы)))))))))
49.
Вусал (21.11.2011 / 15:31)
Всё ровно не знаю что выбрать...(((
50.
ramzes (21.11.2011 / 16:33)
Мускули ъ
Потому что мне он больше нравится =)
51.
Вусал (21.11.2011 / 22:56)
мои тесты не верны....
не згаю почему но если все поменять местами то уже быстрее станет пдо)))))
52.
ramzes (21.11.2011 / 23:00)
51.
ТАЛЫШ, да, не верны. но по другой причине.
гоняй по 1 запросу
53.
Lugaro (21.11.2011 / 23:21)
Вот вы любите на спичках экономить, вы бы ещё сравнили peint с photoshop, peint же ох как быстро работает
54.
ramzes (21.11.2011 / 23:34)
53.
.::lugaro::., какая то ну уж совсем неверная паралель
но на счет экономии на спичках согласен
55.
Lugaro (21.11.2011 / 23:46)
54.
ramzes, Ну это к тому что в pdo в отличии от mysql больше возможностей, а то что он может отставать на эти микроны это не столь важно.
Какай бы либой не пользоваться, от ***кода это не спасет, лучше работать над оптимизацией решений тех задач что есть в скрипте, от этого куда больше пользы.
56.
ramzes (21.11.2011 / 23:54)
55.
.::lugaro::., не понял...
что может пдо чего не может мускул?%)
или ты имел ввиду не мускул а процедурку?
57.
Lugaro (21.11.2011 / 23:59)
56.
ramzes, Я говорю про две либы, а не про бд, которые по своему функционалу очень отличаются .
58.
ramzes (22.11.2011 / 01:28)
57.
.::lugaro::., я не вникал в пдо, но по моему в нем только то что есть в мускули, и даже не все, а мускули прямой наследник мускул
59.
Андрей (22.11.2011 / 01:57)
ramzes (22 Ноября 2011 / 01:28)
57. .::lugaro::., я не вникал в пдо, но по моему в нем только то что есть в мускули, и даже не все, а мускули прямой наследник мускул
60.
ramzes (22.11.2011 / 02:07)
Барыга Обама (22 Ноября 2011 / 01:57)
??
61.
Вусал (22.11.2011 / 02:42)
59. не понял юмора...
URL:
https://visavi.net/topics/26629