Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Есть 50 ГБ текстовой информации (csv- формат). Для ускорения обращения я перегнал ее в двоичные файлы (выполнив преобразования из текста в нужные типы данных), получив 33 ГБ. В итоге скорость чтения увеличилась в 50/33 раз, т.е. узким местом является не необходимость напрягать процессор для конвертации из текста, а только работа с жестким диском. В двоичном формате данные хранят все поля (в структурах), и читаются также все поля. Поэтому появилось мысль использовать БД, чтобы не читать лишние поля (а преобразования из выборки БД в нужные объекты скорее всего как и в предыдущем случае практически не будет замедлять работу). Какую БД посоветуете при подобном объеме? Подойдут ли для этого dbf- файлы (или они тоже читаются целиком)? Пока критерий один- максимальная скорость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2018, 08:14 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Хочется добавить, что БД будет работать на том же компьютере, где выполняется обработка этих данных. Другими словами, желательна маленькая нагрузка на процессор. + Хочется простое решение с наличием простой документации Есть что- то подобное? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2018, 09:16 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov базы данных с поколоночным хранением ? Спасибо! Я всегда думал, что раз SQL- запросы позволяют указать конкретные поля для выборки, то и чтение происходит только этих полей. Какого же было мое удивление, когда я прочитал это: авторОднако что произойдет, если выбрать, например, только 3 поля из таблицы, в которой их всего 50? В силу построчного хранения данных в традиционных СУБД (необходимого, как мы помним, для частых операций добавления новых записей в учетных системах) будут прочитаны абсолютно все строки целиком со всеми полями. Это значит, что не важно, нужны ли нам только 3 поля или 50, с диска в любом случае они все будут прочитаны целиком и полностью, пропущены через контроллер дискового ввода-вывода и переданы процессору, который уже отберет только необходимые для запроса. https://habr.com/post/95181/ Не могу поверить, что это правда, а всё SQL- программирование не более чем бутафория. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2018, 09:45 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLНе могу поверить, что это правда, а всё SQL- программирование не более чем бутафория. Это правда. Так же как и то, что человеку, создавшему в таблице 47 ненужных полей следовало бы оторвать руки и запретить писать статьи. Даже на хабаропомойку. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2018, 11:53 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovЭто правда. Так же как и то, что человеку, создавшему в таблице 47 ненужных полей следовало бы оторвать руки и запретить писать статьи. Даже на хабаропомойку. В одной ситуации нужны одни данные, в другой- другие, а в третьей- третьи... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2018, 12:01 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLВ одной ситуации нужны одни данные, в другой- другие, а в третьей- третьи...... и, скорее всего, эти данные должны быть разнесены по разным таблицам. Ну, там, третья нормальная форма, все дела. P.S. SQL не бутафория, а декларативный язык программирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2018, 12:22 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Думаю надо попробовать записывать данные не массивом структур, а структурой массивов. Тогда при чтении можно будет "перепрыгивать" ненужные данные. У меня в среднем 1 файл занимает 700 кб и содержит ~7 полей, т.е. 100 кб на поле. Если учесть, что ssd читает страницами по 4 кб, то подобные пропуски ненужных данных могут привести к повышению производительности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2018, 12:48 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLДумаю надо попробовать записывать данные не массивом структур, а структурой массивов. Я уже говорил, что применение однопроходных алгоритмов может сделать все эти пляски с бубном ненужными?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2018, 12:50 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovAlekseySQLДумаю надо попробовать записывать данные не массивом структур, а структурой массивов. Я уже говорил, что применение однопроходных алгоритмов может сделать все эти пляски с бубном ненужными?.. Не думаю, что изменение алгоритма обработки данных что- то улучшит, поскольку основной "затык" на скорости чтения данных с диска. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2018, 12:58 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLНе думаю, что изменение алгоритма обработки данных что- то улучшит, поскольку основной "затык" на скорости чтения данных с диска. Именно поэтому уменьшение количества чтений с диска - самая эффективная оптимизация. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2018, 13:08 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLЕсть 50 ГБ текстовой информации (csv- формат). Для ускорения обращения я перегнал ее в двоичные файлы (выполнив преобразования из текста в нужные типы данных), получив 33 ГБ. В итоге скорость чтения увеличилась в 50/33 раз, т.е. узким местом является не необходимость напрягать процессор для конвертации из текста, а только работа с жестким диском. В первом вашем шаге вы отказались от текстового представления данных и перешли к двоичному и это дало производительность в 50/33 (пять третьих чтоли?) раз. В целом - это правильное направление но только для тех данных которые почти всегда NOT NULL. Для множества строк содержащих вакуум подобное преобразование могло дать обратный эффект (одно из полей было VARCHAR(255) но реально из них использовался полный размер только 1 раз а остальные строки не превышали 10-20 символов). И вы-бы потеряли перформанс на дисковых чтениях "пустоты". Второй поинт - где вы говорите о том что узкое место - жесткий диск 80% правильный. Это я могу просто говорить про любую СУБД и выигрывать пари в большем количестве споров. Почти всегда I/O узкое место за исключением специальных In-memory dbms. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2018, 13:35 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
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% строк. Этого невидно на реляционной диаграмме никогда. Но как знаток системы вы должны знать этот факт и предотвращать бесполезные планы которые включают к примеру инексную выборку этого магического ключа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2018, 13:55 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
maytonВ первом вашем шаге вы отказались от текстового представления данных и перешли к двоичному и это дало производительность в 50/33 (пять третьих чтоли?) раз. Да. mayton, спасибо, уже все сделано на реальных данных, так что моделирование не требуется. Просто я думал, что сильно сэкономлю по времени времени из- за того, что не надо конвертировать данные. А оказалось, что эта часть несущественна, а основу всего времени занимает чтение данных из файла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2018, 14:39 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
На "чём" смоделировал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2018, 14:41 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Можно составной индекс делать, по нужным колонкам, тогда данные будут браться из листьев индекса. И в MS SQL (про другие не знаю) есть возможность добавлять к индексу значения неиндексных столбцов (create index ... include ...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2018, 15:22 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Arm79Можно составной индекс делать, по нужным колонкам, тогда данные будут браться из листьев индекса. И в MS SQL (про другие не знаю) есть возможность добавлять к индексу значения неиндексных столбцов (create index ... include ...) Автор пишет Думаю надо попробовать записывать данные не массивом структур, а структурой массивов. Тогда при чтении можно будет "перепрыгивать" ненужные данные. У меня в среднем 1 файл занимает 700 кб и содержит ~7 полей, т.е. 100 кб на поле. Если учесть, что ssd читает страницами по 4 кб, то подобные пропуски ненужных данных могут привести к повышению производительности. Рассмотрим тривиальные кейсы. 1) Автор делает аналитику по 1-2-3 столбцам (hotfield1, hotfield2, hotfield3). В таком случае (ох как я люблю это делать... додумывать за автора постановки и названия... это не шутка!) можно : Код: sql 1. и в запросах указать оптимизатору что мы рекомендуем INDEX_FAST_FULL_SCAN. И таблица уходит из плана. Profit. 2) Делаем копию. Маленькую табличку Код: sql 1. 2. Profit. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2018, 15:31 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
maytonНа "чём" смоделировал. Я не моделировал, а УЖЕ написал программу для реальных данных. И после ее написания увидел прирост в скорости чтения только за счет сокращения размера данных (а не за счет отсутствия конвертации из csv в уже готовые двоичные данные). Сейчас уже написал процедуры сохранения данных по столбцам с возможностью хранить количество повторяющихся данных (чтобы уменьшить размер там где данные часто повторяются). Завтра проверю какая у таких данных скорость записи / чтения / размер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2018, 17:00 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Arm79Можно составной индекс делать, по нужным колонкам, тогда данные будут браться из листьев индекса. И в MS SQL (про другие не знаю) есть возможность добавлять к индексу значения неиндексных столбцов (create index ... include ...) MS SQL- темная сторона силы :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2018, 17:01 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLmaytonНа "чём" смоделировал. Я не моделировал, а УЖЕ написал программу для реальных данных. И после ее написания увидел прирост в скорости чтения только за счет сокращения размера данных (а не за счет отсутствия конвертации из csv в уже готовые двоичные данные). Сейчас уже написал процедуры сохранения данных по столбцам с возможностью хранить количество повторяющихся данных (чтобы уменьшить размер там где данные часто повторяются). Завтра проверю какая у таких данных скорость записи / чтения / размер. Когда я говорил о моделировании - я имел в виду моделирование нагрузки на конкретную DBMS. Ты ведь поднял топик по выбору DBMS. Было-бы странно если-б мы моделировали только С++ приложения. Верно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2018, 17:03 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLArm79Можно составной индекс делать, по нужным колонкам, тогда данные будут браться из листьев индекса. И в MS SQL (про другие не знаю) есть возможность добавлять к индексу значения неиндексных столбцов (create index ... include ...) MS SQL- темная сторона силы :) Наименование БД не критично. Если требуется над данными совершать много действий, я бы выбрал хранение в БД. Если обработка потоковая, то БД не нужна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2018, 17:55 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Arm79AlekseySQLпропущено... MS SQL- темная сторона силы :) Наименование БД не критично. Если требуется над данными совершать много действий, я бы выбрал хранение в БД. Если обработка потоковая, то БД не нужна Потоковая обработка на С++ (а ведь мы находимся в С++) предполагает простые алгоритмы. Когда мы единовременно обрабатывает только 1 dataRow а после обработки выбрасываем ее из алгоритма и переходим к следующией со спулом в файл или stdout. Как актор. Или как Rest. Но если вам нужно сгенерировать отчот с Group By/Order By или не дай бох с оконными функциями - то complexity вашего решения лавинообразно возрастает. Я могу себе представить SQL отчот с исходником на 1-2 скролла экрана. Но я не могу себе представить аналогичный ему исходник С++ с аналогичной бизнес-постановкой. Особенно в части поддержки и развития. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2018, 18:56 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
А ниче что у нас есть специальный форум "Сравнение СУБД"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2018, 23:46 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Я не вижу темы сравнения пока. Сравнение предполагает перечислимое множество вариантов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 00:02 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
каких-то вы тут сферических коней в вакууме обсуждаете. не имея представления о самой задаче. А существо-то дело изложено здесь: авторНе думаю, что изменение алгоритма обработки данных что- то улучшит, поскольку основной "затык" на скорости чтения данных с диска. что на русский переводится так - ввод/вывод не является частью моего алгоритма. я всего лишь хочу заменить медленную функцию на быструю, заменить библиотеку работы с вводом/выводом. После замены продолжу не считать ввод/вывод частью своего алгоритма. А если толка не будет, ну что же, зато я буду точно знать, что сделал всё, что смог, чтобы не считать ввод/вывод частью своего алгоритма. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 02:28 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
White OwlА ниче что у нас есть специальный форум "Сравнение СУБД"? У меня достаточно широко стоит вопрос, включая файлы и различные форматы типа dbf, xml... Не думаю, что эти варианты там можно обсудить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 07:43 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLВ двоичном формате данные хранят все поля (в структурах), и читаются также все поля. Поэтому появилось мысль использовать БД, чтобы не читать лишние поля (а преобразования из выборки БД в нужные объекты скорее всего как и в предыдущем случае практически не будет замедлять работу). Разбей структуру на две: часто используемые поля и остальные. Храни в двух разных таблицах, а связь по ключу или просто по индексу, т.е. номеру записи в таблице. AlekseySQLКакую БД посоветуете при подобном объеме? Подойдут ли для этого dbf- файлы (или они тоже читаются целиком)? Пока критерий один- максимальная скорость. Ты уже сделал самый быстрый вариант. Никакая БД тебя не спасет, т.к. при использовании БД будет лишняя нагрузка на проц, а может и лишнее чтение диска, т.к. БД кроме данных содержит вспомогательную инфу: индексы и т.д. ИМХО лучше подумай как улучшить расположение данных в твоей БД, чтобы минимизировать чтения с диска. Может надо ввести какую-то вспомогательную доп.инфу для ускорения поиска нужных данных. Тут надо от конкретной задачи отталкиваться, смотреть какие именно операции чаще выполняются и под них делать оптимизацию. PS Если дисковое IO критично, то можно диски побыстрее взять, современные SSD читают линейно 3+ Гб/сек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 08:19 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLWhite OwlА ниче что у нас есть специальный форум "Сравнение СУБД"? У меня достаточно широко стоит вопрос, включая файлы и различные форматы типа dbf, xml... Не думаю, что эти варианты там можно обсудить. В твоей задаче xml не дает никаких преимуществ. Это тот же csv по роду доступа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 09:11 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Dima TТы уже сделал самый быстрый вариант. Никакая БД тебя не спасет, т.к. при использовании БД будет лишняя нагрузка на проц, а может и лишнее чтение диска, т.к. БД кроме данных содержит вспомогательную инфу: индексы и т.д. Это неверная информация. Зависит от входных данных и от требуемой логики обработки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 09:18 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Dima TТы уже сделал самый быстрый вариант. Никакая БД тебя не спасет, т.к. при использовании БД будет лишняя нагрузка на проц, а может и лишнее чтение диска, т.к. БД кроме данных содержит вспомогательную инфу: индексы и т.д. . Ну так это "вспомогательная" информация и позволяет более быстро работать с данными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 09:18 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
По поводу dbf. Скорее всего не взлетит. Программные продукты такие как Dbase, clipper, e. T. C. Создавались в эпоху 32 битного железа и софта со всеми вытекающими последствиями. Нельзя открыть файл размером больше 2 гб. И тому подобное. Если под dbf ты имел в виду другое - то уточни что. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 09:21 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Arm79Dima TТы уже сделал самый быстрый вариант. Никакая БД тебя не спасет, т.к. при использовании БД будет лишняя нагрузка на проц, а может и лишнее чтение диска, т.к. БД кроме данных содержит вспомогательную инфу: индексы и т.д. Это неверная информация. Зависит от входных данных и от требуемой логики обработки. В общем случае - согласен. Но, к сожалению, ТС деталей решаемой задачи он не раскрывает, поэтому исходим из его утверждения что задача уже решена оптимально. 982183Dima TТы уже сделал самый быстрый вариант. Никакая БД тебя не спасет, т.к. при использовании БД будет лишняя нагрузка на проц, а может и лишнее чтение диска, т.к. БД кроме данных содержит вспомогательную инфу: индексы и т.д. . Ну так это "вспомогательная" информация и позволяет более быстро работать с данными. Я так понимаю для данной задачи это лишнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 09:32 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Нам нужны хоть какие-то цифры. АлексейSQL. Сделай пожалуйса в консоли: $ cp file.csv /dev/null И сообщи нам сколько это заняло времени в секундах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 10:06 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
maytonНам нужны хоть какие-то цифры. АлексейSQL. Сделай пожалуйса в консоли: $ cp file.csv /dev/null И сообщи нам сколько это заняло времени в секундах. Файл размером 352МБ копировался "в никуда" примерно 1 секунду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 10:17 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Dima TPS Если дисковое IO критично, то можно диски побыстрее взять, современные SSD читают линейно 3+ Гб/сек. Если 3Гб/сек- это 3 Гбайт/секунда, то для этого надо компьютер полностью пересобирать, чтобы мать поддерживала интерфейс М.2. А после этого придется заменять процессор + память... Так что не вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 10:29 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLDima TPS Если дисковое IO критично, то можно диски побыстрее взять, современные SSD читают линейно 3+ Гб/сек. Если 3Гб/сек- это 3 Гбайт/секунда, то для этого надо компьютер полностью пересобирать, чтобы мать поддерживала интерфейс М.2. А после этого придется заменять процессор + память... Так что не вариант. Да, речь про M.2 с поддержкой PCIe x4. Пересобирать не обязательно, есть контроллеры-переходники PCIe - M.2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 10:37 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Dima TДа, речь про M.2 с поддержкой PCIe x4. Пересобирать не обязательно, есть контроллеры-переходники PCIe - M.2. Спасибо! Не знал про такое и думал, что такие скорости работы с диском мне не доступны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 10:46 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Dima TДа, речь про M.2 с поддержкой PCIe x4. Пересобирать не обязательно, есть контроллеры-переходники PCIe - M.2. Где же ты был когда я недавно ssd с sata- интерфейсом себе покупал? Я купил диск ~10 раз меньшей скоростью, вдвое меньшим размером и только ~1,5 раза дешевле, чем есть диски для M.2... p.s. катаюсь по полу от горя :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 10:59 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLСпасибо! Я всегда думал, что раз SQL- запросы позволяют указать конкретные поля для выборки, то и чтение происходит только этих полей. Какого же было мое удивление, когда я прочитал это:Только учти, что размер базы при поколоночном хранении, может быть значительно больше, чем при построчном и этот размер будет расти линейно при заполнении записей любыми данными, даже NULL, тогда как некоторые БД построчного хранения способны оптимизировать размеры записей, храня лишь битовые флаги для NULL и полей, подвергшихся изменению (в случае с версионными СУБД). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 11:01 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
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. Так что если "прижмет", то можно будет апгрейдится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 11:24 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov базы данных с поколоночным хранением ? Они тут не нужны скорее всего. И твоё упрощённое понимание "читают только нужные/все поля из таблицы" неверно. Всё гораздо сложнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 11:24 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLЕсть 50 ГБ текстовой информации (csv- формат). Для ускорения обращения я перегнал ее в двоичные файлы (выполнив преобразования из текста в нужные типы данных), получив 33 ГБ. Какую БД посоветуете при подобном объеме? Подойдут ли для этого dbf- файлы (или они тоже читаются целиком)? Пока критерий один- максимальная скорость. Сколько там записей, объектов? Объём в байтах мало кому интересен при разговоре о БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 11:28 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
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 придется дополнительно менять: мать, процессор, память. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 11:36 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
MasterZivAlekseySQLЕсть 50 ГБ текстовой информации (csv- формат). Для ускорения обращения я перегнал ее в двоичные файлы (выполнив преобразования из текста в нужные типы данных), получив 33 ГБ. Какую БД посоветуете при подобном объеме? Подойдут ли для этого dbf- файлы (или они тоже читаются целиком)? Пока критерий один- максимальная скорость. Сколько там записей, объектов? Объём в байтах мало кому интересен при разговоре о БД. В файле размеров 352 МБайт расположено 6 000 000 строк, каждая из которых представляет назависимую запись. Другими словами, одна запись в текстовом формате весит примерно 60 Байт (а в двоичном немного меньше ~40 Байт). Скоро попробую скорость при поколоночном хранении в файле и тут отпишу результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 11:41 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Лучше бы вы описали характер данных в файле, распределение по значениям колонок, структуру записи и предполагаемые действия над данными. Столько времени убили, а конкретики до сих пор нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 12:03 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLВ файле размеров 352 МБайт расположено 6 000 000 строк Это всё чудненько влазит в оперативку даже 32-х разрядного процесса. Зачем ты вообще устраиваешь переливание с диска на диск - совершенно непонятно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 12:09 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
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мя линиями ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 12:12 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Arm79Лучше бы вы описали характер данных в файле, распределение по значениям колонок, структуру записи и предполагаемые действия над данными. Столько времени убили, а конкретики до сих пор нет Пожалуйста, подождите результата теста при "поколоночном" хранении. Возможно все уже сделано, только не протестировано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 12:40 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovAlekseySQLВ файле размеров 352 МБайт расположено 6 000 000 строк Это всё чудненько влазит в оперативку даже 32-х разрядного процесса. Зачем ты вообще устраиваешь переливание с диска на диск - совершенно непонятно. Подготавливаю данные для последующего многократного чтения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 12:40 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Задача как обычно осталась за кадром ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 12:49 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLПодготавливаю данные для последующего многократного чтения. Из ОЗУ читать гораздо удобнее, чем с диска. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 12:57 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Изопропилзачем менять? Ну будет PCI карта работать в режиме 2.0 с 4мя линиями Нашел интересную статью о работе ssd- дисков в различных разъемах. Для меня важны именно последовательные операции (первый график). Там видно, что скорость диска в слоте PCI Express 2.0 останавливается на 1.2 ГБайт/сек(для диска, позволяющего работать на скорости 1.75 ГБайт/сек). Как PCI Express 2.0 себя покажет для диска, работающего на 3.2 ГБайт/сек? Тоже ограничится скоростью 1.2 ГБайт/сек? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 13:18 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
AlekseySQL, эффективность работы всей системы равна эффективности работы самого слабого её компонента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 13:32 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
ИзопропилЗадача как обычно осталась за кадром а как иначе оправдать немедленную замену железа? не в алгоритмах же ковыряться. только хардкор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 13:36 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
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 на пошустрее. Но мне толку от него мало, т.к. все данные в оперативке кэшируются, поэтому пока отложил покупку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 14:14 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLКак PCI Express 2.0 себя покажет для диска, работающего на 3.2 ГБайт/сек? Тоже ограничится скоростью 1.2 ГБайт/сек? Думаю да, я так понял что 1.2 ГБайт/сек это предел PCI Express 2.0 x4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 14:22 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
MasterZivИ твоё упрощённое пониманиеНе моё - не надо приписывать мне чужие грехи. P.S. - Вот ты помнишь, чему равен пресловутый синус сорока пяти? - Корень из двух на два. - И это тебе хоть раз пригодилось? - Конечно. Ты спросил - я ответил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 14:38 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Насколько мне изменяет склероз, линия PCI-Express - ~четверть гигабайта в секунду. P.S. Погуглил. Не изменяет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 14:42 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovНасколько мне изменяет склероз, линия PCI-Express - ~четверть гигабайта в секунду. P.S. Погуглил. Не изменяет. Это зависит от версии PCI Express: каждая новая версия примерно в 2 раза быстрее предыдущей. Так что по логике, если PCI Express 3.0 может передавать 3.2 ГБайта/сек (потому что есть такие диски), то PCI Express 2.0 должен позволять передавать 1.6 ГБайта/сек. Почему тогда в этой статье произошел затык на 1.2 Гбайт/сек- не понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 14:49 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLЭто зависит от версии PCI ExpressЯ, вообще-то, привёл минимум. Какой бы древней ни была версия PCI-Express, на четырёх линиях вам практически гарантировано ~800+ Мегабайт/сек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 14:54 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLПочему тогда в этой статье произошел затык на 1.2 Гбайт/сек- не понятно.Даже через магистральный водопровод нельзя прокачать кубометр в секунду при помощи ручного насоса. P.S. У вас какие-то удивительно наивные представления. Даже не знаю - огорчаться или улыбаться ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 14:56 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovAlekseySQLПочему тогда в этой статье произошел затык на 1.2 Гбайт/сек- не понятно.Даже через магистральный водопровод нельзя прокачать кубометр в секунду при помощи ручного насоса. P.S. У вас какие-то удивительно наивные представления. Даже не знаю - огорчаться или улыбаться ...Просто народ не понимает особенностей работы системной шины и конкурентного использования lane'ов (полос) последовательной (serial) шины PCI-E. Более того, некоторые до сих пор путают размер слота PCI-E с реально используемым в этом слоте количеством полос и мало кто задумывается о том, сколько реально полос у конкретного чипсета на материнской плате и хватит ли этих полос для коммутации всех необходимых им PCI-E устройств на максимуме их возможностей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 15:34 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
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 Гбайт/сек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 16:16 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLПоэтому не понятно, почему диск работал на 1.2 Гбайт/сек.Что же вы трудный-то такой ... Если аллегория с ручным насосом настолько непонятна, попробуем по другому ... SSD малого объёма работают медленнее больших потому, что существует предел пропускной способности самой флэш-памяти и канала контролера. На каждый канал устанавливается определённый объем памяти, а значит диск малого объёма использует меньше каналов. По этой же причине, на однопоточных обращениях, пропускная способность SSD может быть заметно ниже, чем для многопоточных сценариев. Из всего выше перечисленного, можно (в вашем случае - нужно) сделать один простой вывод: ограничения в цепочке передачи данных действуют по принципу "самое слабое звено" - пропускную способность может ограничить любой компонент и результирующая скорость не может быть выше, чем у самого медленного элемента. P.S. Надеюсь, вы не рассчитываете на то, что я детально разберу спецификации конкретного устройства? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 16:32 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovSSD малого объёма работают медленнее больших потому, что существует предел пропускной способности самой флэш-памяти и канала контролера. На каждый канал устанавливается определённый объем памяти, а значит диск малого объёма использует меньше каналов. В статье использован SSD Patriot Hellfire емкостью 240 ГБ, тестирование которого показало 2,6 Гбайт/сек на запись и 1,5 Гбайт/сек на чтение. Так что дело не в неудачной реализации SSD диска, который не смог использовать все каналы. Basil A. SidorovПо этой же причине, на однопоточных обращениях, пропускная способность SSD может быть заметно ниже, чем для многопоточных сценариев. Характер нагрузки тот же самый, что и для PSI Express 3.0, позволившим осуществить передачу 1.7 ГБайт/сек. Так что и не в характере дело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 17:04 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLВ статье использован SSD Patriot Hellfire емкостью 240 ГБ, тестирование которого показало 2,6 Гбайт/сек на запись и 1,5 Гбайт/сек на чтение.Хорошо, я почитаю за вас: iXBTТестируя Hellfire, мы обратили внимание на то, что максимальную скорость на последовательных операциях из него можно «выжать» лишь многопоточной нагрузкой, так что это тоже надо принимать во внимание на будущее: теоретическая пропускная способность на то и теоретическая, что «реальные» данные, полученные в разных программах по разным сценариям, будут больше зависеть не от нее, а от этих самых программ и сценариев — в том случае, конечно, когда не помешают обстоятельства непреодолимой силы.В тестах, на которые вы ссылаетесь, под самым быстрым результатом есть (стандартная пометка): "32T10". То есть данная пропускная способность достигается при нагрузке накопителя из 32 потоков и при достаточно большой глубине очереди запросов. Чтобы понимать "где дно", надо смотреть на полосочку с пометкой "1T1", а это (в секунду) примерно гигабайт с четвертью на чтение и гигабайт - на запись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 17:23 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLmaytonНам нужны хоть какие-то цифры. АлексейSQL. Сделай пожалуйса в консоли: $ cp file.csv /dev/null И сообщи нам сколько это заняло времени в секундах. Файл размером 352МБ копировался "в никуда" примерно 1 секунду. 1) Я имел в виду померять скорость оригинального 50 Гб файла. Здесь - аппроксимация - не вариант. Мы можем ловить нелинейные эффекты. 2) Покажи шапку файла и первые несколько строк. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 22:28 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovAlekseySQLПодготавливаю данные для последующего многократного чтения. Из ОЗУ читать гораздо удобнее, чем с диска. Друзья. Мне кажется мы пошли немного не в то направление. Мы добиваемся быстрого чтения таблицы с SSD но не задаём себе вопрос а как она собственно туда попала? Телепортировалась? Ее тоже качали ftp/wget - ом или что-то подобное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 22:41 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLMasterZivпропущено... Сколько там записей, объектов? Объём в байтах мало кому интересен при разговоре о БД. В файле размеров 352 МБайт расположено 6 000 000 строк, каждая из которых представляет назависимую запись. Другими словами, одна запись в текстовом формате весит примерно 60 Байт (а в двоичном немного меньше ~40 Байт). Скоро попробую скорость при поколоночном хранении в файле и тут отпишу результат. 6 млн -- это мало, тебе не нужны колоночные БД для этого. Любая СУБД справится. Например, SQLite. Или MySQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2018, 11:55 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLArm79Лучше бы вы описали характер данных в файле, распределение по значениям колонок, структуру записи и предполагаемые действия над данными. Столько времени убили, а конкретики до сих пор нет Пожалуйста, подождите результата теста при "поколоночном" хранении. Возможно все уже сделано, только не протестировано. Ещё раз, тебе не нужны колоночные СУБД. Они нужны при размере данных задачи от миллиарда записей. У тебя даже 10 млн нет. На 3 порядка меньше. Индексы и кэш запросто тебе всё твоё чтение сделают быстрым. Любая современная СУБД это делает. Любая справится с таким малым объёмом. Только надо приложить голову и руки к проектированию БД и написанию запросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2018, 12:00 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
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(). Я доволен результатом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2018, 11:29 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
Купи два модуля памяти по 32Гб, и проблема решена. Хочешь - сделай RAM-диск, хочешь напрямую все данные на адресное пространство отобрази. Делов-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2018, 12:01 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLчтобы не уменьшать ресурс SSD неудачными тестами Это лишнее. Ресурс современных SSD на запись 1+ петабайт, т.е. твои 33 Гб можно записать 30+ тыс. раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2018, 15:43 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
13thКупи два модуля памяти по 32Гб, и проблема решена. Хочешь - сделай RAM-диск, хочешь напрямую все данные на адресное пространство отобрази. Делов-то. Я думаю что эта задача не стоит подобных расходов. Кстати считаю актуальным вопрос об однократном или многократном чтении файла. Сколько вообще "пробегов" нужно совершить по файлу чтоб решить задачу автора? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2018, 15:55 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
mayton13thКупи два модуля памяти по 32Гб, и проблема решена. Хочешь - сделай RAM-диск, хочешь напрямую все данные на адресное пространство отобрази. Делов-то. Я думаю что эта задача не стоит подобных расходов. Кстати считаю актуальным вопрос об однократном или многократном чтении файла. Сколько вообще "пробегов" нужно совершить по файлу чтоб решить задачу автора? В настоящий момент файлы только подготавливаются для последующих алгоритмов. Поэтому пока я ставлю эксперименты на однократный пробег по файлу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 17:47 |
|
||
|
Какую БД выбрать?
|
|||
|---|---|---|---|
|
#18+
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 кб. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 17:34 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2017855]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
99ms |
get tp. blocked users: |
2ms |
| others: | 276ms |
| total: | 471ms |

| 0 / 0 |
