Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: добавление новой, уникальной записи
 
 автор: jonnik   (24.01.2007 в 21:36)   письмо автору
 
 

Есть в базе около 500 зписей, есть поле body типа TEXT. Нужно при добавлении новой
записи проверять совпадение этого поля и если такой записи нет добавлять новую запсиь.
Пока думаю делать так:

<?php
  $res 
mysql_query("SELECT id FROM tab WHERE body = '$body'");  
  if (
mysql_num_rows($res) <> 1)
  {
    
// такой записи нет в БД, добавляем
    
$res mysql_query("INSERT INTO tab VALUES('', '$body')");
  }
?>

Количество записей возврастет и надо будет искать среди 5000, 400 новых... Можно как то
ускорить процесс ? Или есть другие алгоритмы ?

   
 
 автор: cheops   (24.01.2007 в 21:40)   письмо автору
 
   для: jonnik   (24.01.2007 в 21:36)
 

Можно проиндексировать поле body по первым символам уникальным индексом и добавлять запись при помощи оператора
<?php
  mysql_query
("INSERT IGNORE INTO tab VALUES('', '$body')");
?>

PS В этом случае вставляться будут только уникальные записи, а существующие отбрасываться.

   
 
 автор: JonNik   (24.01.2007 в 21:47)   письмо автору
 
   для: cheops   (24.01.2007 в 21:40)
 

>Можно проиндексировать поле body по первым символам уникальным индексом
а это как сделать ? Использую phpMyAdmin...

   
 
 автор: JonNik   (24.01.2007 в 22:19)   письмо автору
 
   для: cheops   (24.01.2007 в 21:40)
 

Вроде разобрался как добавить уникальный индекс:

ALTER TABLE `tab` ADD UNIQUE `ind_text` ( `body` ( 64 ) )

размер индекса 64 - допустим ? до какого размера можно делать индекс ? 32 - уникальность невозможна, уже есть совпадения...

   
 
 автор: cheops   (25.01.2007 в 00:09)   письмо автору
 
   для: JonNik   (24.01.2007 в 22:19)
 

Да, допустим, по-моему до MySQL 5.0 масимум было 500, после MySQL 5.0 - 1000.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования