У меня есть столбец varchar(255)
, где я храню URL-адреса в базе данных MySQL.Этот столбец имеет уникальный индекс.
Когда мой сканер обнаруживает URL-адрес, он должен проверить базу данных, чтобы убедиться, что этот URL уже существует.Если он существует, сканер выбирает данные об этой записи.Если он не существует, сканер добавляет URL-адрес.В настоящее время я делаю это с помощью следующего кода:
$sql = "SELECT id, junk
FROM files
WHERE url = '$url'";
$results = $this->mysqli->query( $sql );
// the file already exists in the system
if( $results->num_rows > 0 )
{
// store data to variables
}
// the file does not exists yet... add it
else
{
// insert new file
$sql = "INSERT INTO files( url )
VALUES( '$url' )";
$results = $this->mysqli->query( $sql );
}
Я понимаю, что есть много способов сделать это.Я читал, что с помощью MySQL оператор if / else может ускорить это.Может кто-нибудь объяснить, как MySQL будет обращаться с этим по-другому, и почему это может быть быстрее?Есть ли другие варианты, которые я должен проверить?Мои сканеры проводят много подобных проверок, и ускорение этого процесса может значительно повысить скорость моей системы.