Обработка текста через Mysql Query - PullRequest
2 голосов
/ 06 февраля 2012

У меня есть много URL-адресов, которые необходимо сохранить в БД для поиска и обновления, какое решение лучше для производительности:

1-сохранить URL-адрес в виде строки в таблице, содержащей один столбец, а затем получитьСтрока из БД и разнесите их в массив и используйте функцию array_search, чтобы найти URL:

сохраненный URL: http://site1.com|http://site2.com|....

подпрограмма поиска:

$is_unique= array_search("$url" ,explode($row['url'] , "|"));

2 вставьте по одной строке на каждый URL в таблице базы данных и используйте запрос для поиска и обновления.

1 Ответ

1 голос
/ 06 февраля 2012

Пусть MySQL обрабатывает поиск.MySQL может использовать индексы, а array_search - нет.Только не забудьте объявить индекс в вашем столбце URL.Вы можете создать индекс с помощью следующего оператора SQL:

CREATE INDEX url_index ON your_table_name (url);

Если вы массово обновляете свои URL-адреса, вы можете заключить обновления в транзакцию, что ускоряет ее, потому что индекс будет сгенерирован зановоне для каждого отдельного оператора обновления.

START TRANSACTION;
[...your update statements go here...]
COMMIT;

Редактировать: О безопасности, потому что я видел это в одном из ваших комментариев.Если параметр предоставлен пользователем, вы хотите экранировать свои вводы с помощью mysql_real_escape_string():

mysql_query("SELECT * FROM table WHERE url = ('".mysql_real_escape_string($your_url)."'");

Для получения подробной информации о безопасности, пожалуйста, прочитайте руководство по PHP для mysql_real_escape_string () и / или Google о внедрении SQL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...