Используйте PDO, люди! Ну!

Используйте PDO, люди! Ну!

Нет прав для скачивания

Insallah

¯\_(ツ)_/¯
🏆
📜
Сообщения
1,564
Реакции
491
Insallah добавил(а) новый ресурс:

Используйте PDO, люди! Ну! - О работе с БД.

Я как читаю ваши споры про всякие mysql_connect, mysql_pconnect, mysqli_connect и так далее - грустно становится. Почему не PDO? Он существует с самых ранних версий пых. Они почти никогда не меняется. Если бы старые игры писали используя его, сейчас бы у многих не было бы неподъёмных проблем портирования игр на php версии ниже 5.6 на более современные редакции.

Да, в документации, которую никто из вас никогда не открывал, всё выглядит...

Узнать больше об этом ресурсе...
 

k880TR

Интересующийся
📜
Сообщения
78
Реакции
12
Очень интересная статья, спасибо, у меня возможно нубский вопрос, но все же задам его. Может получу ответ, который заставит таки перейти на PDO. Если сравнивать mysqli и PDO в чем у них разница по производительности? На что именно лучше переходить, что бы получить продуктивности игры побольше? Причем я имею виду простой mysqli_query, не объектно-ориентированный подход mysqli->query. Статья в духе переходи на PDO и будет тебе php8.* счастье, но у меня и так это счастье есть и скрипт на нем работает. В чем PDO лучше?
 

oxy

Знаток
🏆
📜
Сообщения
466
Реакции
123
Ничем, они примерно одинаковы по скорости. Это не горлышко бутылки. Если ты хочешь добиться большей скорости - тюнь базу данных под свои требования. В процентном соотношении драйвер пдо у тебя тянет где то 0.02% скорости выполнения твоего запроса
 

Sheyx_Baba

Постигающий
📜
Сообщения
157
Реакции
27
Ничем, они примерно одинаковы по скорости. Это не горлышко бутылки. Если ты хочешь добиться большей скорости - тюнь базу данных под свои требования. В процентном соотношении драйвер пдо у тебя тянет где то 0.02% скорости выполнения твоего запроса
У меня давно PDO но если речь о движках бк то там на столько насрали на коды что ключи в мйсгл не совпадают и поэтому при запросов тормозит нужно сначало еще и движок оптимизировать
 

Bayer

Специалист
⚖️
🏆
📜
Сообщения
761
Реакции
257
У меня давно PDO но если речь о движках бк то там на столько насрали на коды что ключи в мйсгл не совпадают и поэтому при запросов тормозит нужно сначало еще и движок оптимизировать
Я конечно может быть не эксперт, может покажусь невежественным или что то такое, но ведь ключи это primary и foreign keys и mysql скажет если что-то не так. Например если в строку с уникальным значением вдруг захочет прийти не уникальное значение.
Ну а для проверки краш запросов есть mysql.log можно даже отсортировать что бы каждый ошибочный запрос SELECT, UPDATE, INSERT записывало в отдельный файл для удобства.
 

k880TR

Интересующийся
📜
Сообщения
78
Реакции
12
Сами скрипты бк не оптимизированы, в плане запросов в базу. Я извиняюсь но каждый пук в игре это UPDATE или SELECT и переписать все на PDO это гемор ещё тот легче перевести все на mysqli в блокноте. Over 1500+ запросов во всем скрипте, насрано это не то слово
 

oxy

Знаток
🏆
📜
Сообщения
466
Реакции
123
Я конечно может быть не эксперт, может покажусь невежественным или что то такое, но ведь ключи это primary и foreign keys и mysql скажет если что-то не так. Например если в строку с уникальным значением вдруг захочет прийти не уникальное значение.
Ну а для проверки краш запросов есть mysql.log можно даже отсортировать что бы каждый ошибочный запрос SELECT, UPDATE, INSERT записывало в отдельный файл для удобства.

В бк вывод ошибок отключен по умолчанию) Так что все эти нотисы или ошибки никто не увидит) И логи никто не читает. По тому даже если ты будешь инсертить что то в таблицу которой нет скорее всего вначале строи будет стоять какой нибудь @ и ты хрен что увидишь)) Но в целом да направление правильное, если ты хочешь посмотреть что не так с таблицами то нужно смотреть логи ошибок и логи медленных запросов



Сами скрипты бк не оптимизированы, в плане запросов в базу. Я извиняюсь но каждый пук в игре это UPDATE или SELECT и переписать все на PDO это гемор ещё тот легче перевести все на mysqli в блокноте. Over 1500+ запросов во всем скрипте, насрано это не то слово
Ты немного путаешь теплое с мягким, принципиальной разницы между pdo и mysqli нет, он не легче и не проще. По крайней мере для задачи по переносу. Другое дело что pdo универсален и не привязан к БД, соответственно не возникнет особых проблем если ты решишь переехать на postgress к примеру или кликхаус какой нибудь. В свою очередь mysqli поддерживает чисто мускульные свистелки и перделки. Правда ты в 99% ними вообще пользоваться не будешь..

Если ты планируешь переписать все на mysqli чисто "шоб работало" в стиле $mysqli->query('SELECT * FROM users WHERE id = '.$_SESSION['uid']), то такой же аналог есть и в PDO $pdo->exec. Но я бы не советовал так делать. И биндинг в пдо как по мне намного проще и удобней
 

oxy

Знаток
🏆
📜
Сообщения
466
Реакции
123
Итог:
Пдо хорош, в нем проще биндинг. Да он не поддерживает какую то статистику и т.д. которая идет чисто от mysql но вы ней и не пользуетесь, так что она не нужна. Вот есть очень хорошая и простая статья для понимания отличий.

Если брать БК то дело вкуса, если тебе привычней работать с MYSQLi то юзай его, если PDO то топи за него.

Если ты хочешь что бы все работало быстро и четко то драйвер тебе не поможет никак. Нужно смотреть логи, искать не оптимизированные запросы и дебажить их через EXPLAIN SELECT (А дальше добавлять индексы разбивать, шардировать или что там придумаешь уже сам)
 
Сверху