|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Andrei Protasovitski 2:5020/400 26 Aug 2004 14:54:52 To : Igor Sigaev Subject : Re: Программируем MySQL под CGI Perl -------------------------------------------------------------------------------- Доброго здоровья! Igor Sigaev пишет: >>индексом+1, если же MySQL, то просто завести поле которое покажет удалена >>запись или нет(0/1) и искать наименьшее с этим значением и его апрейдить > Да, но при этом будет расти база заполненная ненужными/убитыми записями, > но еще не стертыми ... А это скажется на быстродействии, ведь база-то > создается > не сама для себя, а с ней будут работать, сортировать, искать по полям ... Ты только что согласился с Александром Гайдуком по поводу удаления всего, кроме id. По-моему, метка на удаление будет намного проще и быстрее работать. Единственное, в чем ты выиграешь при оставлении одного id, - это размер таблицы при использовании полей типа VARCHAR. Hо использование VARCHAR (и об этом сказано в документации) в любом случае замедляет обработку данных. > Хотя ! Можно посчитать, возьмем наихудший вариант : > Допустим, 100 юзеров уже занесли в базу по 1 000 записей, всего в ней стало > 100 000 записей. > Затем они, как сговорились, и все разом зашли и добавили еще по 1 000 > записей каждый, > в базе стало 200 000 записей. > Затем каждый из 100 юзеров удалил свою "старую" 1 000 записей и после этого > в базе > осталось 100 000 "живых" записей и 100 000 "удаленных", всего 200 000 > записей. > То есть, приблизительно быстродействия базы в худшем варианте будет в 2 раза > медленнее. Это меня устраивает ! ;-) Пожалуй это самый менее геморройный > вариант > из всех предложенных. Большое спасибо ! Как я сам до этого не додумался ?! > ;-) Самый "негеморройный" вариант сделать для id тип BIGINT (2^64). Если этого мало, сделай id строковым и UNIQUE длиной до 255 символов: получишь максимальное число записей 256^255. Единственная проблема - это генерация этого id. Hо раз для тебя скорость не критична, этот вопрос легко решается и "лобовыми" способами. > P.S. И мысли вдогонку, для уменьшения общего размера базы можно будет > периодически > физически удалять все записи с максимальными значением ID, которые имеют > значение в поле "удалена". И это тебе не понадобится. -- Andrei Protasovitski mailto:andrei()siliconmaterials.com JS "KamSil" http://www.siliconmaterials.com/ 137, Brestskaya str., ICQ: 75725244 225710, Pinsk, Belarus --- ifmail v.2.15dev5.3 * Origin: Protasonic (r) Soft (2:5020/400) Вернуться к списку тем, сортированных по:
Архивное /ru.cgi.perl/739407cd8534.html, оценка из 5, голосов 10
|