powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как быстро вставить 500М из текстового файла?
42 сообщений из 42, показаны все 2 страниц
Как быстро вставить 500М из текстового файла?
    #33960563
anonymous99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Интересует методология.
Клиенту на C++ надо из текстового файла вставить данные. Допустим там 3 поля через запятую.
Подскажите или ткните, где прочитать об этом
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33960863
сикока
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"быстро"

что под этим понимается?

если имеется ввиду максимально возможная скорость, то скорее всего это будет сильно зависеть от того, куда вставлять, скореость чтение будет ограничено скоростью работы носителя, на всякий случай, при открытии файла поставь флажок (не помню как называется), оптимизирует последовательный доступ.
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33960905
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anonymous99 a> Интересует методология.
a> Клиенту на C++ надо из текстового файла вставить данные.
a> Допустим там 3 поля через запятую
Ты не указал среду разрабоки. Ты не указал ОС. Так же не раскрыта тема "вставить". Куда ? Зачем ? Что вставлять ?
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33961343
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Общая рекомендация для таких вопросов - читать большими блоками, кратными размеру кластера.
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33961844
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на виндах можно ещё буферизацию отключить для пущей важности (последовательный доступ, увы, тормозит ощутимо), но для этого, гы, придётся приложить усилия :)
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33962143
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anonymous99Интересует методология.
Клиенту на C++ надо из текстового файла вставить данные. Допустим там 3 поля через запятую.
Подскажите или ткните, где прочитать об этом

тут рекомендуют большими блоками - не верьте, это враки... размер блоков ДОЛЖНЫ быть подобраны так, чтобы их ЧТЕНИЕ и ОБРАБОТКА занимала бы одинаковое время. по поводу мега-супер длинных блоков, сам когда то (лет 15 назад) думал..оказалось - не оказалось...тогда блок обработки данных оказался "всего" 1500-2000 байт...это время обработки блока данных был приблизительно равен чтению его с винта...

как это добиться...
очень просто...
делаете настраиваемый параметр - длину блока и начинаете с ним играться...результат Вас удивит :)

с уважением
(круглый)
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33962205
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0 anonymous99Интересует методология.
Клиенту на C++ надо из текстового файла вставить данные. Допустим там 3 поля через запятую.
Подскажите или ткните, где прочитать об этом

тут рекомендуют большими блоками - не верьте, это враки... размер блоков ДОЛЖНЫ быть подобраны так, чтобы их ЧТЕНИЕ и ОБРАБОТКА занимала бы одинаковое время. по поводу мега-супер длинных блоков, сам когда то (лет 15 назад) думал..оказалось - не оказалось...тогда блок обработки данных оказался "всего" 1500-2000 байт...это время обработки блока данных был приблизительно равен чтению его с винта...

как это добиться...
очень просто...
делаете настраиваемый параметр - длину блока и начинаете с ним играться...результат Вас удивит :)

с уважением
(круглый)

Ничем не обосновано.

Если обработка данных у вас занимает значительное время, тогда используйте двойную буферизацию.
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33962207
сикока
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
для начала необходимо определиться с понятием "быстро".
может быть файл открывается не как бинарный, а как текстовый и чтение идёт по строчкам и тормозняки связаны с неоптимальной обработкой данных функцией считывания.

а может быть начинают читать всё сразу в память, а там памяти не хватает и своп начинает работать.

опять же куда вставлять - если в локальную БД, то она может начать тормозить так, что все остальные разговоры окажутся бессмысленными, а может быть вставка идёт по записи, а может быть вставка через сеть, которая тормозит.

:)
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33962257
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh...Ничем не обосновано....Если обработка данных у вас занимает значительное время, тогда используйте двойную буферизацию.

Вы не поняли уважаемый...
1) Обосновано чиссо научным подходом к осмыслению полученных реальных результатов...
2) То, что сказал я - НЕ зависит ОТ способа, алгоритма, кол-во кэшей, буферов и т.д. и т.п..
3) Если Вы чего то не понимаете или не знаете - это не значит, что этого нет :) (С)

Пример...
Если Вы сделаете двадцатипятерную супер-мега буфферизацию, и будете читать по супер-мега блоками...И обрабатывать эти супер-мега блоки по 30 минут - то лично я ЗАЯВЛЯЮ - данный алгоритм НЕ ОПТИМАЛЕН...


И как говорил один профессор математики, выводя на память очередное док-во на доске...-"Кто не верит - пусть проверит."


с уважением
(круглый)
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33962280
anonymous99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Меня интересует базовый подходы. OC - Unix. Как оптимизация должна быть сделана на стороне клиента? Какие алгоритмы надо использовать при обработки больших файлов?
Абстрагируясь от скорости БД, скорости работы носителя.
Вставить надо в SQL-ную таблицу, в которой 3 поля. Ф.И.О.
Вставлять надо из текстового файлы, где поля разделены запятой.
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33962281
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh...тогда используйте двойную буферизацию.


в догонку вопрос...
индексные страницы никогда не строили , уважаемый ?
если да - расскажите пожалуйста каков размер был их... и каков размер индексных страниц в аналогичной бд ?


гы..
(круглый)
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33962295
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0Вы не поняли уважаемый...
1) Обосновано чиссо научным подходом к осмыслению полученных реальных результатов...
2) То, что сказал я - НЕ зависит ОТ способа, алгоритма, кол-во кэшей, буферов и т.д. и т.п..
3) Если Вы чего то не понимаете или не знаете - это не значит, что этого нет :) (С)

Пример...
Если Вы сделаете двадцатипятерную супер-мега буфферизацию, и будете читать по супер-мега блоками...И обрабатывать эти супер-мега блоки по 30 минут - то лично я ЗАЯВЛЯЮ - данный алгоритм НЕ ОПТИМАЛЕН...


И как говорил один профессор математики, выводя на память очередное док-во на доске...-"Кто не верит - пусть проверит."


с уважением
(круглый)

Теперь выше предложение напоминает американскую пропоганду товаров, где пол часа рассказывают одно и тоже пытаясь добиться, чтобы им поверили.

Пункт 1 - голословен.
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33962306
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0 Akh...тогда используйте двойную буферизацию.


в догонку вопрос...
индексные страницы никогда не строили , уважаемый ?
если да - расскажите пожалуйста каков размер был их... и каков размер индексных страниц в аналогичной бд ?


гы..
(круглый)

На вертолете не летали?
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33962317
сикока
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
anonymous99Какие алгоритмы надо использовать при обработки больших файлов?
Абстрагируясь от скорости БД, скорости работы носителя.


алгоритмы чего?
разделения текстовой строки на три поля?
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33962324
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkhНа вертолете не летали?

было дело...это относиться к теме ?

(круглый)
ЗЫ
Я так понимаю, пошло словоблудие...
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33962327
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anonymous99Абстрагируясь от скорости БД, скорости работы носителя.

Вопрос в опитимизации Линукс и БД? Тогда вам в соответствующие форумы.
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33962339
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0 AkhНа вертолете не летали?

было дело...это относиться к теме ?

(круглый)
ЗЫ
Я так понимаю, пошло словоблудие...

По всей видимости, мы говорим про разные проблемы.
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33962360
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkhПо всей видимости, мы говорим про разные проблемы.

OFF
кстати говоря - вертолёт не плохая весчь. и прыгать с него...и летать... тех, кого проектирует сие дивные машины в обиходе называют шестерёнщиками...щестерёнок там много... несколько тысяч...от так вот...

кстати, ышо красиво взлетают и садятся гидросамолёты... особенно единственный в мире советский а40...


(круглый)
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33962404
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0...кстати, ышо красиво взлетают и садятся гидросамолёты... особенно единственный в мире советский а40...

OFF
ышо не плохо сидеть на месте штурмана в момент взлёта и посадки в ил76тд - зрелище ещё то...спать в его заглушках мона, но на диванчике ан8 то же мона...яки трясуться при взлёте, но перегрузки на них прикольно переносить...


не давайте лучше по программирование...или электронику например...
вот помню в дестве лет 30 назад передатчики лепили, всего на одном мп39 и феритовом стержне...хана всем приёмникам в радиусе несколько метров...


(круглый)
ЗЫ
что то я енто...обо всём :)
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33962462
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0 kolobok0...кстати, ышо красиво взлетают и садятся гидросамолёты... особенно единственный в мире советский а40...

OFF
ышо не плохо сидеть на месте штурмана в момент взлёта и посадки в ил76тд - зрелище ещё то...спать в его заглушках мона, но на диванчике ан8 то же мона...яки трясуться при взлёте, но перегрузки на них прикольно переносить...


не давайте лучше по программирование...или электронику например...
вот помню в дестве лет 30 назад передатчики лепили, всего на одном мп39 и феритовом стержне...хана всем приёмникам в радиусе несколько метров...


(круглый)
ЗЫ
что то я енто...обо всём :)

Все нормально? ;)

ЗЫ: у яков 40-х какой-то шланг, возле правого крыла, при посадке переодически отпаливается. Заправочный что ли...
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33962467
anonymous99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понимаете, я же не могу сделать строку const char * или string бесконечной длины. Это будет не эффективно. Мне нужно знать как разбить на запросы этот процесс вставки? По какому принципу?
Разбор строки по запятой не интересует.
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33962554
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anonymous99По какому принципу?
выделяешь кусок данных, соответствующий одной записи
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33962590
anonymous99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По одной записи что ли вставлять?
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33962619
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anonymous99По одной записи что ли вставлять?куда вставлять-то ?
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33962665
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anonymous99Меня интересует базовый подходы. OC - Unix. Как оптимизация должна быть сделана на стороне клиента? Какие алгоритмы надо использовать при обработки больших файлов?
Абстрагируясь от скорости БД, скорости работы носителя.
Вставить надо в SQL-ную таблицу, в которой 3 поля. Ф.И.О.
Вставлять надо из текстового файлы, где поля разделены запятой.
БД какая? Некоторые из них умеют "заливаться" данными при помощи специализированных утилит (например SQL*Loader для Oracle), причём делают это вполне эффективно.
Возможно, стоит пойти именно таким путём...


OFFTOP:
to Горячие финские парни: Вы чего разошлись-то? Да ещё с понедельника...
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33962731
anonymous99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо.
Тогда так.
Мне надо сформировать запрос типа "INSERT INTO table (name, surname) VALUES ('Name', 'Surname');".
Для каждой записи в текстовом файле мне надо писать этот запрос, а потом его выполнять?
Или будет быстрее сразу сформировать несолько таких "insert into" в одном string и затем их все сразу выполнить?
Есть ли разница по скорости?
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33963147
nikname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне кажется вполне очевидным то, что узким местом будет загрузка в БД, а не чтение и парсинг файла с данными. По поводу загрузки - хорошо, если есть bulk insert. Я бы ещё и индекс отключил и построил бы его после загрузки. Оптимизация чтения файла явно не нужна.
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33963183
nikname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
anonymous99Хорошо.
Тогда так.
Мне надо сформировать запрос типа "INSERT INTO table (name, surname) VALUES ('Name', 'Surname');".
Для каждой записи в текстовом файле мне надо писать этот запрос, а потом его выполнять?
Или будет быстрее сразу сформировать несолько таких "insert into" в одном string и затем их все сразу выполнить?
Есть ли разница по скорости?
Лучше сформировать файл типа CSV и загрузить его. Многие БД поддерживают процедуру подобной загрузки. Т.е., возможно, вообще ничего писать не надо, поскольку эти процедуры позволяют настраивать разделители.
LOAD INTO ...
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33963276
nikname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://]http://dev.mysql.com/doc/refman/4.1/en/load-data.html
По ссылке - документация MySQL LOAD INTO
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33963293
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
niknameMySQL
Не стоит спешить, мы пока так и не узнали у автора какая БД используется...
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33963311
nikname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitrii K. niknameMySQL
Не стоит спешить, мы пока так и не узнали у автора какая БД используется...
LOAD INTO есть в большинстве БД.
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33963353
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nikname Dmitrii K. niknameMySQL
Не стоит спешить, мы пока так и не узнали у автора какая БД используется...
LOAD INTO есть в большинстве БД.
Да понятно, см. пред. страницу, я уже приводил пример SQL*Loader )

Просто преждевременно конкретизировать, пока мы не знаем целевой БД.
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33963542
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitrii K. DK> Просто преждевременно конкретизировать, пока мы не знаем
DK> целевой БДи похоже не узнаем :)
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33963612
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карабас Барабас Dmitrii K. DK> Просто преждевременно конкретизировать, пока мы не знаем
DK> целевой БДи похоже не узнаем :)
Posted via ActualForum NNTP Server 1.3

Угу. А если узнать постановку в оригинале... то и текстовик наверное создавать не стоило.
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33963616
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton m> Угу. А если узнать постановку в оригинале... то и
m> текстовик наверное создавать не стоилоЧто-то подсказывает мне, что исходный файл ему присылают ....
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33963624
сикока
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну вот так всегда, народ возбудился, а возбудитель смылся:)
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33963656
anonymous99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
:))
Да тут я. Это вопрос на собеседовании в Яндекс. :)
---
Вот он полностью:
Вам нужно создать в MySQL таблицу со следующей структурой
CREATE TABLE `URL_IDS` (
`ID` INTEGER(11) NOT NULL AUTO_INCREMENT,
`PICTURE_ID` INTEGER(11) NOT NULL UNIQUE,
`URL` VARCHAR(255) NOT NULL,
PRIMARY KEY (`ID`, `URL`))TYPE=MyISAM ;


и быстро вставить в нее 100M записей из файла.
Опишите, как бы вы стали реализовывать эту задачу.
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33963658
anonymous99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конкретные условия задачи не так важны. Мне интересна методология. Да и вопрос этот не на SQL, а на C++.
Наверно в нем предполагается использовать один из стандартных контейнеров.
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33963745
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anonymous99Конкретные условия задачи не так важны. Мне интересна методология. Да и вопрос этот не на SQL, а на C++.
Наверно в нем предполагается использовать один из стандартных контейнеров.

http://company.yandex.ru/inside/job/comm_developer.xml
Вопрос 3 Базы данных/SQL.

Вам нужно создать в MySQL таблицу со следующей структурой


Сходите по ссылке, которую приводил nikname (он таки угадал с базой ) ).
Ну и спросите в форуме по MySQL, скорее всего это типичная задача.
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33965608
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anonymous99Наверно в нем предполагается использовать один из стандартных контейнеров.нет, в вопросе подразумевается стандартный способ заливки в мускул большого объёма данных - load data infile
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33972518
anonymous99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто-нить в C/C++ это делал? Просвятите, где почитать. Я не в курсах. Надо C API использовать? Или mysql++?
...
Рейтинг: 0 / 0
Как быстро вставить 500М из текстового файла?
    #33973285
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://dev.mysql.com/doc/refman/5.0/en/c-api-function-overview.html
прокрути табличку и читай.
...
Рейтинг: 0 / 0
42 сообщений из 42, показаны все 2 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как быстро вставить 500М из текстового файла?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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