Mysql SELECT / INSERT в режиме реального времени VS Позже + Securtiy Вопрос подготовлен Заявления
Здравствуйте,
Я написал небольшой скрипт, уникальный счетчик входов и выходов, где отметка времени + ip пользователя иreferer добавляется в текстовый файл, и каждые 5 минут cronjob вызывает скрипт для обновления БД, в которую он получает данные из текстового файла.
Я обнаружил функцию mysql "INSERT DELAY" - "SET UPDATELOW_PRIORITY "Я использую обе команды в cronjob, теперь я думаю, вставляя данные прямо в БД с помощью этих обеих команд, увеличит ли это нагрузку на БД?или лучше делать это каждые 5 минут.
О скрипте: проверяет, существует ли ip, если ip существует, удаляет вставку и удаляет все ips старше 24 часов, если ip не существует, добавляет ip, удаляет старше 24 часов и выполняет некоторые другие действия.в худшем случае он делает 15 вещей для db SELECT / INSERT / UPDATE / DELETE и OPTIMIZE TABLE для каждого ip
Об окружающей среде: каждые 1 сек 5 приходит пользователь, и через 5 минут у меня должно быть около1500 ips в текстовом файле.О таблице: Там будет arround 300k + ips, который удаляет / проверяет / вставляет.
Так что было бы лучше сделать так, как я это делаю прямо сейчас?Или можно добавить данные в реальном времени в БД с задержкой вставки и так далее?
Хорошо. Я хочу улучшить свой сценарий и, узнав о подготовленных выражениях, я использую расширение MYSQLI: Пример
$sql = "SELECT * FROM table WHERE row1 = ? AND row2 = ? AND row3 = ?";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param('sss', $var1, $var2, $var3);
$stmt->execute();
$stmt->close();
Так что я больше не делаю mysqli-> real_escape_string ($ var);Итак, мой вопрос: можно ли делать инъекции SQL с подготовленными утверждениями?Если да, как я могу предотвратить это?
Спасибо