powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Какую БД выбрать?
76 сообщений из 76, показаны все 4 страниц
Какую БД выбрать?
    #39643766
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть 50 ГБ текстовой информации (csv- формат). Для ускорения обращения я перегнал ее в двоичные файлы (выполнив преобразования из текста в нужные типы данных), получив 33 ГБ. В итоге скорость чтения увеличилась в 50/33 раз, т.е. узким местом является не необходимость напрягать процессор для конвертации из текста, а только работа с жестким диском.

В двоичном формате данные хранят все поля (в структурах), и читаются также все поля. Поэтому появилось мысль использовать БД, чтобы не читать лишние поля (а преобразования из выборки БД в нужные объекты скорее всего как и в предыдущем случае практически не будет замедлять работу).

Какую БД посоветуете при подобном объеме? Подойдут ли для этого dbf- файлы (или они тоже читаются целиком)? Пока критерий один- максимальная скорость.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39643769
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хочется добавить, что БД будет работать на том же компьютере, где выполняется обработка этих данных. Другими словами, желательна маленькая нагрузка на процессор.

+ Хочется простое решение с наличием простой документации

Есть что- то подобное?
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39643771
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39643775
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov базы данных с поколоночным хранением
?

Спасибо! Я всегда думал, что раз SQL- запросы позволяют указать конкретные поля для выборки, то и чтение происходит только этих полей. Какого же было мое удивление, когда я прочитал это:
авторОднако что произойдет, если выбрать, например, только 3 поля из таблицы, в которой их всего 50? В силу построчного хранения данных в традиционных СУБД (необходимого, как мы помним, для частых операций добавления новых записей в учетных системах) будут прочитаны абсолютно все строки целиком со всеми полями. Это значит, что не важно, нужны ли нам только 3 поля или 50, с диска в любом случае они все будут прочитаны целиком и полностью, пропущены через контроллер дискового ввода-вывода и переданы процессору, который уже отберет только необходимые для запроса.

https://habr.com/post/95181/

Не могу поверить, что это правда, а всё SQL- программирование не более чем бутафория.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39643802
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLНе могу поверить, что это правда, а всё SQL- программирование не более чем бутафория.

Это правда. Так же как и то, что человеку, создавшему в таблице 47 ненужных полей
следовало бы оторвать руки и запретить писать статьи. Даже на хабаропомойку.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39643804
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovЭто правда. Так же как и то, что человеку, создавшему в таблице 47 ненужных полей
следовало бы оторвать руки и запретить писать статьи. Даже на хабаропомойку.


В одной ситуации нужны одни данные, в другой- другие, а в третьей- третьи...
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39643806
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLВ одной ситуации нужны одни данные, в другой- другие, а в третьей- третьи...... и, скорее всего, эти данные должны быть разнесены по разным таблицам. Ну, там, третья нормальная форма, все дела.

P.S. SQL не бутафория, а декларативный язык программирования.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39643814
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Думаю надо попробовать записывать данные не массивом структур, а структурой массивов. Тогда при чтении можно будет "перепрыгивать" ненужные данные. У меня в среднем 1 файл занимает 700 кб и содержит ~7 полей, т.е. 100 кб на поле. Если учесть, что ssd читает страницами по 4 кб, то подобные пропуски ненужных данных могут привести к повышению производительности.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39643815
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLДумаю надо попробовать записывать данные не массивом структур, а структурой массивов.

Я уже говорил, что применение однопроходных алгоритмов может сделать все эти пляски с
бубном ненужными?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39643817
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovAlekseySQLДумаю надо попробовать записывать данные не массивом структур, а структурой массивов.

Я уже говорил, что применение однопроходных алгоритмов может сделать все эти пляски с
бубном ненужными?..


Не думаю, что изменение алгоритма обработки данных что- то улучшит, поскольку основной "затык" на скорости чтения данных с диска.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39643822
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLНе думаю, что изменение алгоритма обработки данных что- то улучшит, поскольку основной
"затык" на скорости чтения данных с диска.

Именно поэтому уменьшение количества чтений с диска - самая эффективная оптимизация.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39643833
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLЕсть 50 ГБ текстовой информации (csv- формат). Для ускорения обращения я перегнал ее в двоичные файлы (выполнив преобразования из текста в нужные типы данных), получив 33 ГБ. В итоге скорость чтения увеличилась в 50/33 раз, т.е. узким местом является не необходимость напрягать процессор для конвертации из текста, а только работа с жестким диском.

В первом вашем шаге вы отказались от текстового представления данных и перешли к двоичному и
это дало производительность в 50/33 (пять третьих чтоли?) раз. В целом - это правильное направление
но только для тех данных которые почти всегда NOT NULL. Для множества строк содержащих вакуум
подобное преобразование могло дать обратный эффект (одно из полей было VARCHAR(255) но реально
из них использовался полный размер только 1 раз а остальные строки не превышали 10-20 символов).
И вы-бы потеряли перформанс на дисковых чтениях "пустоты".

Второй поинт - где вы говорите о том что узкое место - жесткий диск 80% правильный. Это я могу просто
говорить про любую СУБД и выигрывать пари в большем количестве споров. Почти всегда I/O узкое место
за исключением специальных In-memory dbms.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39643840
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLНе могу поверить, что это правда, а всё SQL- программирование не более чем бутафория.
Хуже чем ложь может быть только полу-правда. На самом деле SQL программирование как было так и осталось.
Просто были пересмотрены "универсальные" подходы 20-го века. И к ним добавили специализированные
подходы которые исключали некоторые реляционные операции (NoSQL) но при этом добавляли гарантии
того что документ к примеру всегда денормализован (MongoDB) и лежит физически консолидировано на диске.

По поводу статьи на Хабре. Я ее не читал полностью. Но по поводу column-oriented-dbms. Это компромисс
между OLTP и аналитикой с "перекосом" в сторону аналитики. Тоесть вы теряете перформанс будущих
inserts/updates за счет того что нужно поддерживать вертикальную организацию данных но получаете
более экономный режим чтения. И даже не чтения конкретной строки а агрегации (sum/avg/count/min/max)
групп строк.

Кстати подобного эффекта можно ближе достичь если рациональнее разложить колонки в обычной DBMS.
Здесь принцип един. Мы можем разойтись лишь в цифрах. На сколько % больше или быстрее? ХЗ.
Надо делать макет и моделировать. Как вариант - положить ваши 3 горячие колонки в отдельную
табличку. И обеспечивать синхронность через триггеры или mviews.

Кстати по поводу макетов. Я много лет наблюдаю работу DBMS Oracle и убеждаюсь в том что нет универсальной
пули которая всегда подойдет к любым данным + к нагрузке. Поэтому все кто в топике будут вам убедительно советовать
использовать "свою любимую DBMS" или DBMS о которой они 5 минут назад прочитали в Хабре - лжецы.
Они подходят безответственно потому что не им потом разгребать issues - а вам.

Не верьте им.

Чему нужно верить? 1) Нужно взять вашу DBMS и загрузить туда вашу табличку.
2) Нужно смоделировать workload. Тоесть создать программу-симулятор которая будет
максимально близко. Близко настолько насколько это возможно грузить чтениями
вашу табличку. 3) Замерять среднее время на каждом классе реквестов.

После этого можно приступать ко 2-й фазе. Собственно к оптимизации. Это процесс
кропотлиый и сложный. Он - уравнение со многими неизвестными. И вобщем-то дальше
говорить о нем рано. Надо дождаться от вас цифр.

Если у вас вообще нет сведений о workload то - мои поздравления. Мы с вами не сможем
в топике разработать подход который вас спасет.

Ну и конечно-же я повторю слова Джонатана Льюиса. Он говорит - Вы должны "знать" ваши данные.
Тоесть на уровне бизнеса понимать где есть внутренние зависимости и перекосы (skew) в области
статистики. К примеру одно значение foreign key может заполнять 99% строк. Этого невидно
на реляционной диаграмме никогда. Но как знаток системы вы должны знать этот факт
и предотвращать бесполезные планы которые включают к примеру инексную выборку
этого магического ключа.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39643859
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonВ первом вашем шаге вы отказались от текстового представления данных и перешли к двоичному и
это дало производительность в 50/33 (пять третьих чтоли?) раз.

Да.

mayton, спасибо, уже все сделано на реальных данных, так что моделирование не требуется. Просто я думал, что сильно сэкономлю по времени времени из- за того, что не надо конвертировать данные. А оказалось, что эта часть несущественна, а основу всего времени занимает чтение данных из файла.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39643860
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На "чём" смоделировал.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39643877
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно составной индекс делать, по нужным колонкам, тогда данные будут браться из листьев индекса.

И в MS SQL (про другие не знаю) есть возможность добавлять к индексу значения неиндексных столбцов (create index ... include ...)
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39643881
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Можно составной индекс делать, по нужным колонкам, тогда данные будут браться из листьев индекса.

И в MS SQL (про другие не знаю) есть возможность добавлять к индексу значения неиндексных столбцов (create index ... include ...)
Автор пишет
Думаю надо попробовать записывать данные не массивом структур, а структурой массивов. Тогда при чтении можно будет "перепрыгивать" ненужные данные. У меня в среднем 1 файл занимает 700 кб и содержит ~7 полей, т.е. 100 кб на поле. Если учесть, что ssd читает страницами по 4 кб, то подобные пропуски ненужных данных могут привести к повышению производительности.
Рассмотрим тривиальные кейсы.
1) Автор делает аналитику по 1-2-3 столбцам (hotfield1, hotfield2, hotfield3). В таком случае (ох как я люблю это делать... додумывать
за автора постановки и названия... это не шутка!) можно :
Код: sql
1.
create index hotFieldsForAnalytic on huge50gbTable(hotfield1, hotfield2, hotfield3);


и в запросах указать оптимизатору что мы рекомендуем INDEX_FAST_FULL_SCAN. И таблица уходит из плана.
Profit.
2) Делаем копию. Маленькую табличку
Код: sql
1.
2.
create table smallTable as select  hotfield1, hotfield2, hotfield3 from huge50gbTable;
// Optionally, triggers after DML, mviews.


Profit.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39643906
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonНа "чём" смоделировал.

Я не моделировал, а УЖЕ написал программу для реальных данных. И после ее написания увидел прирост в скорости чтения только за счет сокращения размера данных (а не за счет отсутствия конвертации из csv в уже готовые двоичные данные).

Сейчас уже написал процедуры сохранения данных по столбцам с возможностью хранить количество повторяющихся данных (чтобы уменьшить размер там где данные часто повторяются). Завтра проверю какая у таких данных скорость записи / чтения / размер.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39643907
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arm79Можно составной индекс делать, по нужным колонкам, тогда данные будут браться из листьев индекса.

И в MS SQL (про другие не знаю) есть возможность добавлять к индексу значения неиндексных столбцов (create index ... include ...)

MS SQL- темная сторона силы :)
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39643908
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLmaytonНа "чём" смоделировал.

Я не моделировал, а УЖЕ написал программу для реальных данных. И после ее написания увидел прирост в скорости чтения только за счет сокращения размера данных (а не за счет отсутствия конвертации из csv в уже готовые двоичные данные).

Сейчас уже написал процедуры сохранения данных по столбцам с возможностью хранить количество повторяющихся данных (чтобы уменьшить размер там где данные часто повторяются). Завтра проверю какая у таких данных скорость записи / чтения / размер.
Когда я говорил о моделировании - я имел в виду моделирование нагрузки на конкретную DBMS.

Ты ведь поднял топик по выбору DBMS. Было-бы странно если-б мы моделировали только С++ приложения. Верно?
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39643926
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLArm79Можно составной индекс делать, по нужным колонкам, тогда данные будут браться из листьев индекса.

И в MS SQL (про другие не знаю) есть возможность добавлять к индексу значения неиндексных столбцов (create index ... include ...)

MS SQL- темная сторона силы :)

Наименование БД не критично. Если требуется над данными совершать много действий, я бы выбрал хранение в БД. Если обработка потоковая, то БД не нужна
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39643964
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79AlekseySQLпропущено...


MS SQL- темная сторона силы :)

Наименование БД не критично. Если требуется над данными совершать много действий, я бы выбрал хранение в БД. Если обработка потоковая, то БД не нужна
Потоковая обработка на С++ (а ведь мы находимся в С++) предполагает простые алгоритмы.
Когда мы единовременно обрабатывает только 1 dataRow а после обработки выбрасываем
ее из алгоритма и переходим к следующией со спулом в файл или stdout. Как актор. Или как Rest.

Но если вам нужно сгенерировать отчот с Group By/Order By или не дай бох с оконными функциями
- то complexity вашего решения лавинообразно возрастает. Я могу себе представить SQL отчот
с исходником на 1-2 скролла экрана. Но я не могу себе представить аналогичный ему исходник
С++ с аналогичной бизнес-постановкой. Особенно в части поддержки и развития.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644066
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ниче что у нас есть специальный форум "Сравнение СУБД"?
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644069
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не вижу темы сравнения пока. Сравнение предполагает перечислимое множество вариантов.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644091
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
каких-то вы тут сферических коней в вакууме обсуждаете.
не имея представления о самой задаче.

А существо-то дело изложено здесь:
авторНе думаю, что изменение алгоритма обработки данных что- то улучшит, поскольку основной "затык" на скорости чтения данных с диска.

что на русский переводится так - ввод/вывод не является частью моего алгоритма.
я всего лишь хочу заменить медленную функцию на быструю, заменить библиотеку работы с вводом/выводом.
После замены продолжу не считать ввод/вывод частью своего алгоритма.
А если толка не будет, ну что же, зато я буду точно знать,
что сделал всё, что смог, чтобы не считать ввод/вывод частью своего алгоритма.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644121
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlА ниче что у нас есть специальный форум "Сравнение СУБД"?

У меня достаточно широко стоит вопрос, включая файлы и различные форматы типа dbf, xml... Не думаю, что эти варианты там можно обсудить.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644128
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLВ двоичном формате данные хранят все поля (в структурах), и читаются также все поля. Поэтому появилось мысль использовать БД, чтобы не читать лишние поля (а преобразования из выборки БД в нужные объекты скорее всего как и в предыдущем случае практически не будет замедлять работу).
Разбей структуру на две: часто используемые поля и остальные. Храни в двух разных таблицах, а связь по ключу или просто по индексу, т.е. номеру записи в таблице.
AlekseySQLКакую БД посоветуете при подобном объеме? Подойдут ли для этого dbf- файлы (или они тоже читаются целиком)? Пока критерий один- максимальная скорость.
Ты уже сделал самый быстрый вариант. Никакая БД тебя не спасет, т.к. при использовании БД будет лишняя нагрузка на проц, а может и лишнее чтение диска, т.к. БД кроме данных содержит вспомогательную инфу: индексы и т.д.

ИМХО лучше подумай как улучшить расположение данных в твоей БД, чтобы минимизировать чтения с диска.
Может надо ввести какую-то вспомогательную доп.инфу для ускорения поиска нужных данных.
Тут надо от конкретной задачи отталкиваться, смотреть какие именно операции чаще выполняются и под них делать оптимизацию.

PS Если дисковое IO критично, то можно диски побыстрее взять, современные SSD читают линейно 3+ Гб/сек.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644148
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLWhite OwlА ниче что у нас есть специальный форум "Сравнение СУБД"?

У меня достаточно широко стоит вопрос, включая файлы и различные форматы типа dbf, xml... Не думаю, что эти варианты там можно обсудить.
В твоей задаче xml не дает никаких преимуществ. Это тот же csv по роду доступа.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644151
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TТы уже сделал самый быстрый вариант. Никакая БД тебя не спасет, т.к. при использовании БД будет лишняя нагрузка на проц, а может и лишнее чтение диска, т.к. БД кроме данных содержит вспомогательную инфу: индексы и т.д.
Это неверная информация. Зависит от входных данных и от требуемой логики обработки.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644152
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TТы уже сделал самый быстрый вариант. Никакая БД тебя не спасет, т.к. при использовании БД будет лишняя нагрузка на проц, а может и лишнее чтение диска, т.к. БД кроме данных содержит вспомогательную инфу: индексы и т.д.
.
Ну так это "вспомогательная" информация и позволяет более быстро работать с данными.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644153
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу dbf. Скорее всего не взлетит.
Программные продукты такие как
Dbase, clipper, e. T. C. Создавались в эпоху 32 битного железа и софта со всеми вытекающими последствиями. Нельзя открыть файл размером больше 2 гб. И тому подобное.

Если под dbf ты имел в виду другое - то уточни что.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644158
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Dima TТы уже сделал самый быстрый вариант. Никакая БД тебя не спасет, т.к. при использовании БД будет лишняя нагрузка на проц, а может и лишнее чтение диска, т.к. БД кроме данных содержит вспомогательную инфу: индексы и т.д.
Это неверная информация. Зависит от входных данных и от требуемой логики обработки.
В общем случае - согласен. Но, к сожалению, ТС деталей решаемой задачи он не раскрывает, поэтому исходим из его утверждения что задача уже решена оптимально.

982183Dima TТы уже сделал самый быстрый вариант. Никакая БД тебя не спасет, т.к. при использовании БД будет лишняя нагрузка на проц, а может и лишнее чтение диска, т.к. БД кроме данных содержит вспомогательную инфу: индексы и т.д.
.
Ну так это "вспомогательная" информация и позволяет более быстро работать с данными.
Я так понимаю для данной задачи это лишнее.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644185
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нам нужны хоть какие-то цифры.
АлексейSQL. Сделай пожалуйса в консоли:

$ cp file.csv /dev/null

И сообщи нам сколько это заняло времени в секундах.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644197
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonНам нужны хоть какие-то цифры.
АлексейSQL. Сделай пожалуйса в консоли:

$ cp file.csv /dev/null

И сообщи нам сколько это заняло времени в секундах.

Файл размером 352МБ копировался "в никуда" примерно 1 секунду.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644213
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TPS Если дисковое IO критично, то можно диски побыстрее взять, современные SSD читают линейно 3+ Гб/сек.

Если 3Гб/сек- это 3 Гбайт/секунда, то для этого надо компьютер полностью пересобирать, чтобы мать поддерживала интерфейс М.2. А после этого придется заменять процессор + память... Так что не вариант.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644224
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLDima TPS Если дисковое IO критично, то можно диски побыстрее взять, современные SSD читают линейно 3+ Гб/сек.

Если 3Гб/сек- это 3 Гбайт/секунда, то для этого надо компьютер полностью пересобирать, чтобы мать поддерживала интерфейс М.2. А после этого придется заменять процессор + память... Так что не вариант.
Да, речь про M.2 с поддержкой PCIe x4.
Пересобирать не обязательно, есть контроллеры-переходники PCIe - M.2.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644234
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TДа, речь про M.2 с поддержкой PCIe x4.
Пересобирать не обязательно, есть контроллеры-переходники PCIe - M.2.

Спасибо! Не знал про такое и думал, что такие скорости работы с диском мне не доступны.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644253
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TДа, речь про M.2 с поддержкой PCIe x4.
Пересобирать не обязательно, есть контроллеры-переходники PCIe - M.2.

Где же ты был когда я недавно ssd с sata- интерфейсом себе покупал?
Я купил диск ~10 раз меньшей скоростью, вдвое меньшим размером и только ~1,5 раза дешевле, чем есть диски для M.2...

p.s. катаюсь по полу от горя :)
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644255
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLСпасибо! Я всегда думал, что раз SQL- запросы позволяют указать конкретные поля для выборки, то и чтение происходит только этих полей. Какого же было мое удивление, когда я прочитал это:Только учти, что размер базы при поколоночном хранении, может быть значительно больше, чем при построчном и этот размер будет расти линейно при заполнении записей любыми данными, даже NULL, тогда как некоторые БД построчного хранения способны оптимизировать размеры записей, храня лишь битовые флаги для NULL и полей, подвергшихся изменению (в случае с версионными СУБД).
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644277
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlekseySQLГде же ты был когда я недавно ssd с sata- интерфейсом себе покупал?
Я купил диск ~10 раз меньшей скоростью, вдвое меньшим размером и только ~1,5 раза дешевле, чем есть диски для M.2...

p.s. катаюсь по полу от горя :)

Есть ssd- диски, которые коннектятся напрямую к PCI Express 3.0 и предложенные переходники требуют наличия именно PCI Express 3.0 .

Так вот, как я помню, на yandex- маркете с помощью фильтров я искал материнки:
1. "в продаже"
2. LGA- 1150
3. PCI Express 3.0

и находил только модели Supermicro (у них специфичный внешний вид, поэтому запомнились) по неадекватным ценам. А теперь там есть модели (от 5500 рублей), которые поддерживают мой процессор и обладают разъемом PCI Express 3.0.

Так что если "прижмет", то можно будет апгрейдится.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644278
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov базы данных с поколоночным хранением
?

Они тут не нужны скорее всего.

И твоё упрощённое понимание "читают только нужные/все поля из таблицы" неверно.
Всё гораздо сложнее.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644286
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLЕсть 50 ГБ текстовой информации (csv- формат). Для ускорения обращения я перегнал ее в двоичные файлы (выполнив преобразования из текста в нужные типы данных), получив 33 ГБ.
Какую БД посоветуете при подобном объеме? Подойдут ли для этого dbf- файлы (или они тоже читаются целиком)? Пока критерий один- максимальная скорость.

Сколько там записей, объектов?
Объём в байтах мало кому интересен при разговоре о БД.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644294
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlekseySQLТак вот, как я помню, на yandex- маркете с помощью фильтров я искал материнки:
1. "в продаже"
2. LGA- 1150
3. PCI Express 3.0

и находил только модели Supermicro (у них специфичный внешний вид, поэтому запомнились) по неадекватным ценам. А теперь там есть модели (от 5500 рублей), которые поддерживают мой процессор и обладают разъемом PCI Express 3.0.

Так что если "прижмет", то можно будет апгрейдится.

На сайте производителей проанализировал эти материнки и оказалось, что слот PCI Express 3.0 имеет скорость x16, а нужный слот со скоростью x4 имеет старую версию PCI Express 2.0 . Так что отбой: для M.2 придется дополнительно менять: мать, процессор, память.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644295
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivAlekseySQLЕсть 50 ГБ текстовой информации (csv- формат). Для ускорения обращения я перегнал ее в двоичные файлы (выполнив преобразования из текста в нужные типы данных), получив 33 ГБ.
Какую БД посоветуете при подобном объеме? Подойдут ли для этого dbf- файлы (или они тоже читаются целиком)? Пока критерий один- максимальная скорость.

Сколько там записей, объектов?
Объём в байтах мало кому интересен при разговоре о БД.

В файле размеров 352 МБайт расположено 6 000 000 строк, каждая из которых представляет назависимую запись. Другими словами, одна запись в текстовом формате весит примерно 60 Байт (а в двоичном немного меньше ~40 Байт).

Скоро попробую скорость при поколоночном хранении в файле и тут отпишу результат.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644314
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше бы вы описали характер данных в файле, распределение по значениям колонок, структуру записи и предполагаемые действия над данными.

Столько времени убили, а конкретики до сих пор нет
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644318
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLВ файле размеров 352 МБайт расположено 6 000 000 строк

Это всё чудненько влазит в оперативку даже 32-х разрядного процесса. Зачем ты вообще
устраиваешь переливание с диска на диск - совершенно непонятно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644321
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLAlekseySQLТак вот, как я помню, на yandex- маркете с помощью фильтров я искал материнки:
1. "в продаже"
2. LGA- 1150
3. PCI Express 3.0

и находил только модели Supermicro (у них специфичный внешний вид, поэтому запомнились) по неадекватным ценам. А теперь там есть модели (от 5500 рублей), которые поддерживают мой процессор и обладают разъемом PCI Express 3.0.

Так что если "прижмет", то можно будет апгрейдится.

На сайте производителей проанализировал эти материнки и оказалось, что слот PCI Express 3.0 имеет скорость x16, а нужный слот со скоростью x4 имеет старую версию PCI Express 2.0 . Так что отбой: для M.2 придется дополнительно менять: мать, процессор, память.зачем менять?
Ну будет PCI карта работать в режиме 2.0 с 4мя линиями
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644334
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arm79Лучше бы вы описали характер данных в файле, распределение по значениям колонок, структуру записи и предполагаемые действия над данными.

Столько времени убили, а конкретики до сих пор нет

Пожалуйста, подождите результата теста при "поколоночном" хранении. Возможно все уже сделано, только не протестировано.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644335
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovAlekseySQLВ файле размеров 352 МБайт расположено 6 000 000 строк

Это всё чудненько влазит в оперативку даже 32-х разрядного процесса. Зачем ты вообще
устраиваешь переливание с диска на диск - совершенно непонятно.


Подготавливаю данные для последующего многократного чтения.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644345
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача как обычно осталась за кадром
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644347
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLПодготавливаю данные для последующего многократного чтения.

Из ОЗУ читать гораздо удобнее, чем с диска.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644366
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропилзачем менять?
Ну будет PCI карта работать в режиме 2.0 с 4мя линиями

Нашел интересную статью о работе ssd- дисков в различных разъемах. Для меня важны именно последовательные операции (первый график). Там видно, что скорость диска в слоте PCI Express 2.0 останавливается на 1.2 ГБайт/сек(для диска, позволяющего работать на скорости 1.75 ГБайт/сек).

Как PCI Express 2.0 себя покажет для диска, работающего на 3.2 ГБайт/сек? Тоже ограничится скоростью 1.2 ГБайт/сек?
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644390
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL, эффективность работы всей системы равна эффективности работы самого слабого её компонента.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644393
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилЗадача как обычно осталась за кадром

а как иначе оправдать немедленную замену железа?
не в алгоритмах же ковыряться.
только хардкор.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644424
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLИзопропилзачем менять?
Ну будет PCI карта работать в режиме 2.0 с 4мя линиями

Нашел интересную статью о работе ssd- дисков в различных разъемах. Для меня важны именно последовательные операции (первый график). Там видно, что скорость диска в слоте PCI Express 2.0 останавливается на 1.2 ГБайт/сек(для диска, позволяющего работать на скорости 1.75 ГБайт/сек).

Как PCI Express 2.0 себя покажет для диска, работающего на 3.2 ГБайт/сек? Тоже ограничится скоростью 1.2 ГБайт/сек?
Интересная статья. В железе современном мало копаюсь, думал все PCI Express`ы одинаковы, только линии добавляют, а оно оказалось сложнее устроено.

Сам недавно подумывал заменить свой SSD PCI-E 2.0 x2 на пошустрее. Но мне толку от него мало, т.к. все данные в оперативке кэшируются, поэтому пока отложил покупку.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644430
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLКак PCI Express 2.0 себя покажет для диска, работающего на 3.2 ГБайт/сек? Тоже ограничится скоростью 1.2 ГБайт/сек?
Думаю да, я так понял что 1.2 ГБайт/сек это предел PCI Express 2.0 x4
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644444
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivИ твоё упрощённое пониманиеНе моё - не надо приписывать мне чужие грехи.

P.S.
- Вот ты помнишь, чему равен пресловутый синус сорока пяти?
- Корень из двух на два.
- И это тебе хоть раз пригодилось?
- Конечно. Ты спросил - я ответил.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644447
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько мне изменяет склероз, линия PCI-Express - ~четверть гигабайта в секунду.

P.S. Погуглил. Не изменяет.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644455
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. SidorovНасколько мне изменяет склероз, линия PCI-Express - ~четверть гигабайта в секунду.

P.S. Погуглил. Не изменяет.

Это зависит от версии PCI Express: каждая новая версия примерно в 2 раза быстрее предыдущей. Так что по логике, если PCI Express 3.0 может передавать 3.2 ГБайта/сек (потому что есть такие диски), то PCI Express 2.0 должен позволять передавать 1.6 ГБайта/сек. Почему тогда в этой статье произошел затык на 1.2 Гбайт/сек- не понятно.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644460
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLЭто зависит от версии PCI ExpressЯ, вообще-то, привёл минимум.
Какой бы древней ни была версия PCI-Express, на четырёх линиях вам практически гарантировано ~800+ Мегабайт/сек.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644463
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLПочему тогда в этой статье произошел затык на 1.2 Гбайт/сек- не понятно.Даже через магистральный водопровод нельзя прокачать кубометр в секунду при помощи ручного насоса.

P.S.
У вас какие-то удивительно наивные представления.
Даже не знаю - огорчаться или улыбаться ...
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644496
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovAlekseySQLПочему тогда в этой статье произошел затык на 1.2 Гбайт/сек- не понятно.Даже через магистральный водопровод нельзя прокачать кубометр в секунду при помощи ручного насоса.

P.S.
У вас какие-то удивительно наивные представления.
Даже не знаю - огорчаться или улыбаться ...Просто народ не понимает особенностей работы системной шины и конкурентного использования lane'ов (полос) последовательной (serial) шины PCI-E. Более того, некоторые до сих пор путают размер слота PCI-E с реально используемым в этом слоте количеством полос и мало кто задумывается о том, сколько реально полос у конкретного чипсета на материнской плате и хватит ли этих полос для коммутации всех необходимых им PCI-E устройств на максимуме их возможностей.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644515
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. SidorovAlekseySQLПочему тогда в этой статье произошел затык на 1.2 Гбайт/сек- не понятно.Даже через магистральный водопровод нельзя прокачать кубометр в секунду при помощи ручного насоса.

P.S.
У вас какие-то удивительно наивные представления.
Даже не знаю - огорчаться или улыбаться ...

Диск из статьи может работать на 1,7 Гб, при этом PSI EXxpress 3.0 позволяет работать дискам 3,2 Гбайт/сек, PSI EXxpress 2.0 в два раза медленнее, чем PSI EXxpress 3.0 (а значит пропускает минимум 1,6 Гбайт/сек). Поэтому не понятно, почему диск работал на 1.2 Гбайт/сек.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644524
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLПоэтому не понятно, почему диск работал на 1.2 Гбайт/сек.Что же вы трудный-то такой ...
Если аллегория с ручным насосом настолько непонятна, попробуем по другому ...

SSD малого объёма работают медленнее больших потому, что существует предел пропускной способности самой флэш-памяти и канала контролера. На каждый канал устанавливается определённый объем памяти, а значит диск малого объёма использует меньше каналов.
По этой же причине, на однопоточных обращениях, пропускная способность SSD может быть заметно ниже, чем для многопоточных сценариев.

Из всего выше перечисленного, можно (в вашем случае - нужно) сделать один простой вывод: ограничения в цепочке передачи данных действуют по принципу "самое слабое звено" - пропускную способность может ограничить любой компонент и результирующая скорость не может быть выше, чем у самого медленного элемента.

P.S.
Надеюсь, вы не рассчитываете на то, что я детально разберу спецификации конкретного устройства?
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644543
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. SidorovSSD малого объёма работают медленнее больших потому, что существует предел пропускной способности самой флэш-памяти и канала контролера. На каждый канал устанавливается определённый объем памяти, а значит диск малого объёма использует меньше каналов.

В статье использован SSD Patriot Hellfire емкостью 240 ГБ, тестирование которого показало 2,6 Гбайт/сек на запись и 1,5 Гбайт/сек на чтение. Так что дело не в неудачной реализации SSD диска, который не смог использовать все каналы.

Basil A. SidorovПо этой же причине, на однопоточных обращениях, пропускная способность SSD может быть заметно ниже, чем для многопоточных сценариев.

Характер нагрузки тот же самый, что и для PSI Express 3.0, позволившим осуществить передачу 1.7 ГБайт/сек. Так что и не в характере дело.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644556
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLВ статье использован SSD Patriot Hellfire емкостью 240 ГБ, тестирование которого показало 2,6 Гбайт/сек на запись и 1,5 Гбайт/сек на чтение.Хорошо, я почитаю за вас:
iXBTТестируя Hellfire, мы обратили внимание на то, что максимальную скорость на последовательных операциях из него можно «выжать» лишь многопоточной нагрузкой, так что это тоже надо принимать во внимание на будущее: теоретическая пропускная способность на то и теоретическая, что «реальные» данные, полученные в разных программах по разным сценариям, будут больше зависеть не от нее, а от этих самых программ и сценариев — в том случае, конечно, когда не помешают обстоятельства непреодолимой силы.В тестах, на которые вы ссылаетесь, под самым быстрым результатом есть (стандартная пометка): "32T10".
То есть данная пропускная способность достигается при нагрузке накопителя из 32 потоков и при достаточно большой глубине очереди запросов.
Чтобы понимать "где дно", надо смотреть на полосочку с пометкой "1T1", а это (в секунду) примерно гигабайт с четвертью на чтение и гигабайт - на запись.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644666
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLmaytonНам нужны хоть какие-то цифры.
АлексейSQL. Сделай пожалуйса в консоли:

$ cp file.csv /dev/null

И сообщи нам сколько это заняло времени в секундах.

Файл размером 352МБ копировался "в никуда" примерно 1 секунду.
1) Я имел в виду померять скорость оригинального 50 Гб файла. Здесь - аппроксимация - не вариант.
Мы можем ловить нелинейные эффекты.

2) Покажи шапку файла и первые несколько строк.
Код: plaintext
1.
$ head -n 3 file50gb.csv
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644672
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovAlekseySQLПодготавливаю данные для последующего многократного чтения.

Из ОЗУ читать гораздо удобнее, чем с диска.

Друзья. Мне кажется мы пошли немного не в то направление. Мы добиваемся быстрого чтения таблицы
с SSD но не задаём себе вопрос а как она собственно туда попала? Телепортировалась? Ее тоже
качали ftp/wget - ом или что-то подобное.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644872
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLMasterZivпропущено...


Сколько там записей, объектов?
Объём в байтах мало кому интересен при разговоре о БД.

В файле размеров 352 МБайт расположено 6 000 000 строк, каждая из которых представляет назависимую запись. Другими словами, одна запись в текстовом формате весит примерно 60 Байт (а в двоичном немного меньше ~40 Байт).

Скоро попробую скорость при поколоночном хранении в файле и тут отпишу результат.

6 млн -- это мало, тебе не нужны колоночные БД для этого.
Любая СУБД справится.
Например, SQLite. Или MySQL.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39644876
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLArm79Лучше бы вы описали характер данных в файле, распределение по значениям колонок, структуру записи и предполагаемые действия над данными.

Столько времени убили, а конкретики до сих пор нет

Пожалуйста, подождите результата теста при "поколоночном" хранении. Возможно все уже сделано, только не протестировано.

Ещё раз, тебе не нужны колоночные СУБД. Они нужны при размере данных задачи от миллиарда записей.
У тебя даже 10 млн нет. На 3 порядка меньше. Индексы и кэш запросто тебе всё твоё чтение сделают быстрым.
Любая современная СУБД это делает. Любая справится с таким малым объёмом. Только надо приложить голову и руки
к проектированию БД и написанию запросов.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39645979
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlekseySQLПожалуйста, подождите результата теста при "поколоночном" хранении. Возможно все уже сделано, только не протестировано.

У меня есть 1 HDD и 1 SSD- диски. При конвертации из txt- формата в bin- формат запись производилась только на HDD, а после удачного завершения данные копировались на SSD (чтобы не уменьшать ресурс SSD неудачными тестами). Чтение данных из bin- файлов производилась 4- мя потоками (3 потока читали с SSD и 1 поток читал с HDD). Для каждого поля производился анализ повторения с предыдущим значением (или его инкрементом), за счет чего удалось выполнить сжатие данных.

AOS(array of struct):
Размер сконвертированных bin- файлов(нет сжатия): 23.3 ГБ
Время записи bin- файлов (только на HDD): 290 сек
Время чтения bin- файлов (с HDD + SSD): 89 сек

SOA(struct of array):

Размер сконвертированных bin- файлов(есть сжатие): 6.8 ГБ
Время записи bin- файлов(только на HDD): 176 сек
Время чтения bin- файлов(с HDD + SSD): 11.5 сек

Видно, что размер файлов уменьшился ~3 раза, а скорость чтения выросла ~8 раз. Произошло это за счет того, что не все колонки читались с диска, а некоторые были пропущены с помощью seekg(). Я доволен результатом.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39646006
13th
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Купи два модуля памяти по 32Гб, и проблема решена.
Хочешь - сделай RAM-диск, хочешь напрямую все данные на адресное пространство отобрази. Делов-то.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39646208
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLчтобы не уменьшать ресурс SSD неудачными тестами
Это лишнее. Ресурс современных SSD на запись 1+ петабайт, т.е. твои 33 Гб можно записать 30+ тыс. раз.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39646220
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
13thКупи два модуля памяти по 32Гб, и проблема решена.
Хочешь - сделай RAM-диск, хочешь напрямую все данные на адресное пространство отобрази. Делов-то.
Я думаю что эта задача не стоит подобных расходов.

Кстати считаю актуальным вопрос об однократном или многократном чтении файла.

Сколько вообще "пробегов" нужно совершить по файлу чтоб решить задачу автора?
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39646832
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton13thКупи два модуля памяти по 32Гб, и проблема решена.
Хочешь - сделай RAM-диск, хочешь напрямую все данные на адресное пространство отобрази. Делов-то.
Я думаю что эта задача не стоит подобных расходов.

Кстати считаю актуальным вопрос об однократном или многократном чтении файла.

Сколько вообще "пробегов" нужно совершить по файлу чтоб решить задачу автора?

В настоящий момент файлы только подготавливаются для последующих алгоритмов. Поэтому пока я ставлю эксперименты на однократный пробег по файлу.
...
Рейтинг: 0 / 0
Какую БД выбрать?
    #39648907
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlekseySQL AOS(array of struct):
Размер сконвертированных bin- файлов(нет сжатия): 23.3 ГБ
Время записи bin- файлов (только на HDD): 290 сек
Время чтения bin- файлов (с HDD + SSD): 89 сек

SOA(struct of array):

Размер сконвертированных bin- файлов(есть сжатие): 6.8 ГБ
Время записи bin- файлов(только на HDD): 176 сек
Время чтения bin- файлов(с HDD + SSD): 11.5 сек

Видно, что размер файлов уменьшился ~3 раза, а скорость чтения выросла ~8 раз. Произошло это за счет того, что не все колонки читались с диска, а некоторые были пропущены с помощью seekg(). Я доволен результатом.

Обманул я вас всех:
AOS(array of struct):
Размер сконвертированных bin- файлов(нет сжатия): 23.3 ГБ
Время записи bin- файлов (только на HDD): 290 сек
Время чтения bin- файлов (с HDD + SSD): 53 сек

SOA(struct of array):
Размер сконвертированных bin- файлов(есть сжатие): 6.8 ГБ
Время записи bin- файлов(только на HDD): 176 сек
Время чтения bin- файлов(с HDD + SSD): 24 сек

Т.е. скорость чтения увеличилась даже меньше, чем сократился размер файлов. Хотя без пропуска ненужных столбцов время чтения будет хуже: 30 сек ...

Я связываю такое незначительное увеличение скорости чтения с тем, что у меня получилось много маленьких файлов, размером меньше 4 кб. Так как чтение идет страницами по 4 кб, то не всегда сокращение размера файла ведет к ускорению. Так что возможно в моем случае накладные расходы на БД покроют накладные расходы, связанные с тем, что я работаю с маленькими файлами, читая страницами по 4 кб.
...
Рейтинг: 0 / 0
76 сообщений из 76, показаны все 4 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / Какую БД выбрать?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]