Mysql SELECT / INSERT в режиме реального времени VS Позже + Securtiy [Вопрос] подготовленные заявления - PullRequest
1 голос
/ 02 июля 2011

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 с подготовленными утверждениями?Если да, как я могу предотвратить это?

Спасибо

...