Поиск скриптов | Ищу скрипт
Trec80 (03.05.2019 в 13:29)
monobogdan , нуу с PDO частично можно реализовать DBAL, еще мускули более функциональный , только эти все функции до конца жизни нужны не будут =D Да и PDO безопаснее
monobogdan , нуу с PDO частично можно реализовать DBAL, еще мускули более функциональный , только эти все функции до конца жизни нужны не будут =D Да и PDO безопаснее
Основной плюс PDO это как раз абстракция от конкретной БД. То, что он даёт некоторый оверхед - это да, есть, но это не критично.
Сегодня магазин овощей тебя попросил сохранить им товары в Access, а завтра это магазин мирового уровня с PosgtreSQL. А ведь тебе и переписывать ничего не пришлось)
monobogdan , кстати говоря о том что быстрее , пдо не особо уступает по скорости мускули , там вообще разрыв не критичный , + зависит как настроен сервер.
monobogdan ,
Вообще не критично , PDO местами быстрее
Use PDO with PDO::ATTR_EMULATE_PREPARES set to TRUE and use the charset=utf8mb4 in the dsn (to be equally safe as if emulation was turned off).
The speed increase is around 80% and this is not the default with for example Laravel.
The difference with MySQLi with using real_escape_string is really so small that it is not worth it (around 1.5
and using prepared statements is much safer.
I have MySQL on a separete server (which is very common) and I need to be able to execute thousands of queries per second (perhaps not so common) so this is a big deal for me. I am testing here a common select query in my production environment.
test 1 (PDO with query + quote) finished in 4.282 seconds
test 2 (PDO with prepared statement) finished in 4.465 seconds
test 3 (PDO with emulation with query + quote) finished in 2.578 seconds
test 4 (PDO with emulation with prepared statement) finished in 2.518 seconds
test 5 (MySQLi with real_escape_string) finished in 2.482 seconds
test 6 (MySQLi with prepared statement) finished in 4.396 seconds
Test with long latency (using localhost connecting to external MySQL server with PHP Version 7.1) using 100 simple queries:
test 1 (PDO with query + quote) finished in 6.231 seconds
test 2 (PDO with prepared statement) finished in 6.489 seconds
test 3 (PDO with emulation with query + quote) finished in 3.126 seconds
test 4 (PDO with emulation with prepared statement) finished in 3.127 seconds
test 5 (MySQLi with real_escape_string) finished in 3.123 seconds
test 6 (MySQLi with prepared statement) finished in 6.189 seconds
Вообще не критично , PDO местами быстрее
Use PDO with PDO::ATTR_EMULATE_PREPARES set to TRUE and use the charset=utf8mb4 in the dsn (to be equally safe as if emulation was turned off).
The speed increase is around 80% and this is not the default with for example Laravel.
The difference with MySQLi with using real_escape_string is really so small that it is not worth it (around 1.5
and using prepared statements is much safer. I have MySQL on a separete server (which is very common) and I need to be able to execute thousands of queries per second (perhaps not so common) so this is a big deal for me. I am testing here a common select query in my production environment.
test 1 (PDO with query + quote) finished in 4.282 seconds
test 2 (PDO with prepared statement) finished in 4.465 seconds
test 3 (PDO with emulation with query + quote) finished in 2.578 seconds
test 4 (PDO with emulation with prepared statement) finished in 2.518 seconds
test 5 (MySQLi with real_escape_string) finished in 2.482 seconds
test 6 (MySQLi with prepared statement) finished in 4.396 seconds
Test with long latency (using localhost connecting to external MySQL server with PHP Version 7.1) using 100 simple queries:
test 1 (PDO with query + quote) finished in 6.231 seconds
test 2 (PDO with prepared statement) finished in 6.489 seconds
test 3 (PDO with emulation with query + quote) finished in 3.126 seconds
test 4 (PDO with emulation with prepared statement) finished in 3.127 seconds
test 5 (MySQLi with real_escape_string) finished in 3.123 seconds
test 6 (MySQLi with prepared statement) finished in 6.189 seconds
Trec80 , нафига использовать real_escape_string(что, вероятно - лишний RPC на сервер), когда вся его реализация это:
?
<?php
$a = str_replace("'", "\\'", str_replace("\"", "\\\""));
?
monobogdan (03.05.2019 в 13:39)
Trec80 , нафига использовать real_escape_string(что, вероятно - лишний RPC на сервер), когда вся его реализация это:
?
Trec80 , нафига использовать real_escape_string(что, вероятно - лишний RPC на сервер), когда вся его реализация это:
<?php
$a = str_replace("'", "\'", str_replace(""", "\""));
?
Ты спроси у автора где я брал эти тесты )
Там вообще у него был цикл в цикле , но да ладно)
Trec80 , ну, это видимо чисто фишка PDO. Виндовый аналог PDO - ADO например медленнее нативных клиентов из-за позднего связывания, но зато его можно использовать в любом языке с поддержкой OLE(даже в PHP). В этом его преимущество.
________
посл. ред. 03.05.2019 в 13:43; всего 1 раз(а); by monobogdan
________
посл. ред. 03.05.2019 в 13:43; всего 1 раз(а); by monobogdan
Стр.: 1, 2