[Comm] Re: Еще о локали utf-8 и файле Compose
Aleksey Avdeev
=?iso-8859-1?q?solo_=CE=C1_solin=2Espb=2Eru?=
Ср Янв 28 20:58:15 MSK 2004
Денис Смирнов пишет:
> On Wed, Jan 28, 2004 at 06:45:22PM +0300, Aleksey Avdeev wrote:
>
> > Разница в объёме данных, а следовательно в накладных расходах на:
> > 1. хранение (диски не резиновые)
>
> Есть такое, но не так уж и критично.
Критичность зависит от объёма и скорости его роста: для БД
растущих со скоростью несколько (10, 100 и т. д.) гиг в месяц -
уже может быть критично.
>
> > 2. резервное копирование (ленты не резиновые + время +
> > _физический_ объём)
>
>
> 642947 Ноя 13 1996 Лабиринт_отражений
> 205139 Янв 28 19:26 Лабиринт_отражений.bz2
> 273723 Янв 28 19:23 Лабиринт_отражений.gz
> 1094149 Янв 28 19:23 Лабиринт_отражений.utf
> 212953 Янв 28 19:26 Лабиринт_отражений.utf.bz2
> 319371 Янв 28 19:23 Лабиринт_отражений.utf.gz
>
> (319371 - 273723) / 273723 * 100 ~= 16% (для gzip -9)
> (212953 - 205139) / 205139 * 100 ~= 3% (для bzip2 -9)
>
> То есть увеличение объёма составит 3% при использование bzip2.
Согласен. Но в некоторых случаях на ленту льют не сжимая:
bzip2 -9 длительная и ресурсаёмкая операция, при больших объёмах.
>
> > 3. скорость обработки (в том числе - полнотекстовый поиск)
>
> А индексы на что?
Проиндексировать каждое слово не всегда возможно. + любые
индексы хороши, когда _заранее_ известно что надо искать.
>
> > 4. поддержка индексов (объёмы + скорость поиска)
>
> Бр-р-р-р-р. Индексирование строк без хэшей?
Иногда - да: когда двоичные деревья рулят, например. Или
когда выгодно вытащить данные из индекса, не обращаясь к самой
таблице. Или когда таблица уже упорядочена.
На самом деле в каждом случяи надо разбираться особо: смена
типа индекса иногда меняет скорость доступа в разы. И хеш -
далеко не всегда оптимальный (они однозначно рулят, когда
хеш-таблица в память помещается _полностью_).
>
> > 5. ...
>
> ?
Лениво вспоминать. ;-)
Всё очень завязано на объёмы БД и количество строк (данных
и/или индекса) помещающихся на странице.
>
> > Собственно уменьшение размера поля на 1 _бит_ - уже большой
> > "+" для крупной БД! А Вы предлагаете 2х кратное _увеличение_
> > объёма для кириллической информации...
>
> Увы, при моих (весьма скромных объёмах) для меня простота и прозрачность
> кода значение имеет. Производительность значение имеет (но на ней размер
> text/varchar/char полей особо не отражается). А вот объём, увы, не имеет.
При больших таблицах (не вмещающихся в _физическую_ память)
сильно отражается: уменьшение количествы строк на странице БД
повышает количество дисковых операций. А если учесть, что если
запрос затрагивает больше некоторого порога строк (10-30% или
5%-10%, точнее непомню: давно доку на Oracle не смотрел) то
выполнение запроса полным перебором таблицы часто _выгодней_
индексного.
> И не будет иметь до тех пор, пока объёмы баз данных не станут превышать
> хотя бы сотню гигабайт (SCSI HDD такого размера, что его стоиомть
> становится сколь-либо существенной).
Весьма правильный подход! Просто в разных случаях, разные
параметры имеют первоочередное значение.
--
С уважением. Алексей.
Подробная информация о списке рассылки community