|
|
|
| Делаю тесты на обработку строк, объектов, массивов и т.д.
Обычно Python показывает результаты раз в 10 быстрей чем php.
Но почему-то работа с базой данных показывает обратный результат...
PHP: 0.8826 сек
Python: 1.9600 сек
PHP (mysql или PDO):
for ($i = 0; $i < 10000; $i++)
mysql_query('SELECT * FROM contacts ORDER BY RAND()');
Python (MySQLdb):
for i in xrange(10000):
cursor.execute('SELECT * FROM contacts ORDER BY RAND()')
Понимаю что тесты искуственные, но не должна же быть такая большая разница? | |
|
|
|
|
|
|
|
для: ChieFSS
(09.04.2014 в 16:45)
| | Дело в нижележашей библиотеке, реализующей протокол mysql.
У вас PHP собран с модулем mysqlnd? | |
|
|
|
|
|
|
|
для: Саня
(09.04.2014 в 20:12)
| | видимо да. phpinfo() :
mysqlnd
mysqlnd => enabled
Version => mysqlnd 5.0.10
pdo_mysql
Client API version => mysqlnd 5.0.10 | |
|
|
|
|
|
|
|
для: ChieFSS
(10.04.2014 в 10:27)
| | Попробуйте замерить время выполнения этого же кода на другой версии PHP, которая использует libmysql.so, а не mysqlnd. | |
|
|
|
|
|
|
|
для: Саня
(10.04.2014 в 17:06)
| | На самом деле больше интересно почему питон такой тормозной :)
Можно ли как-то ускорить запросы или результат с библиотекой libmysql.so поможет в этом разобраться? | |
|
|
|
|
|
|
|
для: ChieFSS
(11.04.2014 в 11:07)
| | Питон третий используется? | |
|
|
|
|
|
|
|
для: cheops
(11.04.2014 в 19:52)
| | Нет, Питон 2 | |
|
|
|
|
|
|
|
для: ChieFSS
(09.04.2014 в 16:45)
| | Сколько раз тесты запускались? MySQL сервер был "прогрет"? | |
|
|
|
|
|
|
|
для: cheops
(09.04.2014 в 22:01)
| | Тесты запускал больше 30 раз точно и специально добавил RAND() чтобы из кэша не брались данные | |
|
|
|