metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2013-04-18 10:21 pm

В порядке безумия

http://plumqqz.livejournal.com/364288.html
Я вот как-то не задумывался, что в приложениях, предназначенных для exUSSR базы данных с большим количеством текстовых полей в таблицах в win-1251 будут в два раза меньше чем в utf8.
Интересно, нельзя ли в базе сделать кастомную кодировку, аналогичную utf8, но чтобы в ней символы, цифры, русские и приравненные к ним буквы чтобы занимали 1 байт, а английские и прочие умляуты - 2 и прочее. Сразу бы вопрос размера базы снялся.

[identity profile] aamonster.livejournal.com 2013-04-18 07:24 pm (UTC)(link)
Хочется взять и уебать.
И так хватило безумия с кодировками. А хотите ада - жмите поля ppm.

[identity profile] falcrum.livejournal.com 2013-04-18 07:26 pm (UTC)(link)
Теоретически, никто не мешает. Заодно... э-э... обсфурцируешь... :)

[identity profile] metaclass.livejournal.com 2013-04-18 07:27 pm (UTC)(link)
Ну да, но вот народ уперся рогом в win-1251 и все. А потом же будут костыли когда туда понадобится умляуты и иероглифы писать.
Впрочем, я придумал более простой вариант - два поля, русский писать в первое в win1251, если понадобится нерусь вносить - во второе, в utf8.

[identity profile] metaclass.livejournal.com 2013-04-18 07:27 pm (UTC)(link)
"В комментарии призывается maxdz с комментариями про колхозные кодировки серверного мордора основанные на xor"

[identity profile] aamonster.livejournal.com 2013-04-18 07:29 pm (UTC)(link)
Только ppm. Только хардкор. Всё остальное - неоправданный расход битиков!

[identity profile] berezovsky.livejournal.com 2013-04-18 07:37 pm (UTC)(link)
ничё не понял, куда там что упирается, если размер в два раза больше

[identity profile] metaclass.livejournal.com 2013-04-18 07:45 pm (UTC)(link)
Нагрузка на i/o и размеры стораджа.

[personal profile] alll 2013-04-18 07:53 pm (UTC)(link)
ребе, не останавливайтесь на полдороге - жмите уже текстовые поля потоковым компрессором
один чорт на перекодировку utf8r <-> utf8 процессор напрягать

[identity profile] berezovsky.livejournal.com 2013-04-18 07:55 pm (UTC)(link)
аппаратно зипировать

[identity profile] metaclass.livejournal.com 2013-04-18 07:55 pm (UTC)(link)
Вы тащемта не поверите, но базы данных это сами вроде делают :)

[identity profile] plumqqz.livejournal.com 2013-04-18 08:17 pm (UTC)(link)
Некоторые даже с аппаратной помощью.

[identity profile] plumqqz.livejournal.com 2013-04-18 08:20 pm (UTC)(link)
А вы, между прочим, предложили отличное решение.

[identity profile] kiryl.livejournal.com 2013-04-18 08:25 pm (UTC)(link)
Купите уже больше памяти/диска и не изобретайте костыли.

[identity profile] metaclass.livejournal.com 2013-04-18 08:36 pm (UTC)(link)
Да я тоже так думаю.
Но вот для баз в несколько терабайт размером и на хороших дисках, внезапно, экономия в два раза начинает иметь смысл. Плюс еще ускорение работы в два раза чисто за счет i/o.

[identity profile] eternal-leave.livejournal.com 2013-04-18 08:51 pm (UTC)(link)
Базы в пару терабайт зачастую партиционированы на куски по несколько десятков гиг, которые с легкостью влазят целиком в память

[identity profile] eternal-leave.livejournal.com 2013-04-18 08:53 pm (UTC)(link)
latin1 же )

[identity profile] kiryl.livejournal.com 2013-04-18 09:07 pm (UTC)(link)
А что по сегодняшним меркам пара терабайт -- это объём? Это ж за разумные деньги делается. Хоть SAS на 15k, хоть SSD.

P.S. в моём тестовом стенде 1TiB RAM :-P

[personal profile] alll 2013-04-18 09:16 pm (UTC)(link)
Не поверю - иначе откуда бы вы взяли такой вкусный выигрыш в размерах в ~50% вместо унылого ~20%. ;)

[identity profile] qehgt.livejournal.com 2013-04-18 09:19 pm (UTC)(link)
Есть такая мудрая поговорка "с говна сметану собирать".

[identity profile] metaclass.livejournal.com 2013-04-18 09:20 pm (UTC)(link)
У меня как-то не складывается.
Вот собирался сделать себе сервак для виртуализации - памяти побольше, диски в рейде, материнка плата более-менее приличная - так в итоге получается, что он себя не окупит.
Т.е. пиковая его производительность мне нужна, когда я интенсивно делаю какую-нибудь трэшатину, но загрузить его в среднем хотя бы на 50% - я один лично не смогу, я столько работы не делаю, а больше некому. :)

[identity profile] qehgt.livejournal.com 2013-04-18 11:16 pm (UTC)(link)
А можно поинтересоваться, что в "несколько терабайтной" базе этой храниться будет? Фамилии/имена всех жителей России от начала времён и до конца жизни Вселенной?

А то вся флибуста - это такие-то жалкие 301 гигабайт со всеми толстыми и достоевскими. И всё равно не дотягивает.

[identity profile] trueblacker.livejournal.com 2013-04-19 04:01 am (UTC)(link)
не в точности, но примерно по теме

[identity profile] thedeemon.livejournal.com 2013-04-19 04:12 am (UTC)(link)
Запись всех разговоров и мыслей жителей Минска и окрестностей за 21-25 века.

[identity profile] metaclass.livejournal.com 2013-04-19 04:51 am (UTC)(link)
Там вроде все в архивах.

[identity profile] metaclass.livejournal.com 2013-04-19 04:58 am (UTC)(link)
В трекер только что добавлен пункт "переговорить с куратором насчет утечки данных в Таиланде".

[identity profile] denisioru.livejournal.com 2013-04-19 05:29 am (UTC)(link)
А что такое "в два раза"? У вас plain-text document storage? В остальных случаях разница win1251/utf-8 несущественна. Индексы по текстовым строкам пожырнее будут, но это не настолько критично, ибо все нормальные full-text движки используют уникод для хранения строк. Я не вижу причин создавать базы СЕЙЧАС в кодировке, отличной от utf-8 или строго уникодной. Потому что завтра появится название на китайском, французском или чешском (кстати у нас такие уже есть такие, и монгольский и прочие).

[identity profile] denisioru.livejournal.com 2013-04-19 05:31 am (UTC)(link)
Да не будет там в два раза. Служебной информации тоже хватает. К тому же большие текстовые данные отлично жмутся как позаписьно так и постранично.

[identity profile] metaclass.livejournal.com 2013-04-19 05:51 am (UTC)(link)
Ну вот все так говорят, а крокодил говорит, что на текстах заметная экономия.

[identity profile] plumqqz.livejournal.com 2013-04-19 06:12 am (UTC)(link)
Потому что завтра появится название на китайском, французском или чешском (кстати у нас такие уже есть такие, и монгольский и прочие).
У меня брат - врач, и, грит, с определенного момента времени юзерыпациенты начали привозить выписки из историй болезни на китайском, тайском, арабском, турецком и т.п. Что с ними делать - он не знал, но в итоге пошел по вашему пути - просто подклеивал. Пусть будет, чё...

[identity profile] denisioru.livejournal.com 2013-04-19 07:24 am (UTC)(link)
Пруфы? И не надо синтетики, где одна таблица на стопицот миллионов записей с двумя полями, одно из которых текстовое и индексированное. Это ниразу не показатель. В реальной жизни разница единицы процентов, да и то надо постараться, чтобы она была.

[identity profile] nivanych.livejournal.com 2013-04-19 09:09 am (UTC)(link)
Слышал, люди пробовали в BTRFS со сжатием хранить и даже получали какой-то выигрыш.
На чистом BTRFS получается раза в полтора-два медленнее, чем в ext4, но зато, в BTRFS есть сжатие, и оно как-то что-то позволяет.
Я не пробовал.

[identity profile] tzirechnoy.livejournal.com 2013-04-19 09:10 am (UTC)(link)
Если весь сраный оркужающий мир не знает, как работать с разными кодировками -- то нет, нельзя.

А в постгрэссе, конечно, можно.

[identity profile] tzirechnoy.livejournal.com 2013-04-19 09:12 am (UTC)(link)
В юникоде, кстати, так и нет нормальной одновременной поддержки китайского и японского иероглифического.

[identity profile] denisioru.livejournal.com 2013-04-19 09:13 am (UTC)(link)
Тем не менее уникод снимает львиную долю головняков с хранением национальных символов.

[identity profile] nivanych.livejournal.com 2013-04-19 09:43 am (UTC)(link)
BTRFS со включенным ZLO-сжатием!!

[identity profile] litvin-v.livejournal.com 2013-04-19 09:45 am (UTC)(link)
Я как-то реализовывал хранение русских строк в 5-ти битах на символ. И свой формат базы. Телефонный справочник для аппарата с очень мало мозгов.

Если надо цифры и буквы, которым нет аналогов в кириллице, можно ещё бит добавить :)

[identity profile] victor bolshakov (from livejournal.com) 2013-04-19 04:32 pm (UTC)(link)
Хранить в нормальном UTF, чтоб русскому небыло обидно.
А вообще, это касается только БД с кучей текстов - полнотекстовый поиск и т.д. Но для этого случая реляцилнные БД как-то не очень.

[identity profile] berezovsky.livejournal.com 2013-04-19 05:57 pm (UTC)(link)
О, привет, глазофф!

[identity profile] anonim-legion.livejournal.com 2013-04-20 07:19 am (UTC)(link)
Кто-нибудь, дайте Крокодилу ссылку: natishalom.typepad.com/nati_shaloms_blog/2010/03/memory-is-the-new-disk-for-the-enterprise.html

Пускай ужаснется.

[identity profile] anonim-legion.livejournal.com 2013-04-20 07:21 am (UTC)(link)
+100500

[identity profile] anonim-legion.livejournal.com 2013-04-20 07:22 am (UTC)(link)
Я почти уверен, что если бы выписки были на английском - он тоже не знал бы, что с ними делать. Потому что учил немецкий, но его тоже не знает.

Врачи такие врачи.

[identity profile] plumqqz.livejournal.com 2013-04-22 07:30 pm (UTC)(link)
Ну вот и думайте, к чему это все ведет.