|
|
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
Интересует методология. Клиенту на C++ надо из текстового файла вставить данные. Допустим там 3 поля через запятую. Подскажите или ткните, где прочитать об этом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2006, 12:22 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
"быстро" что под этим понимается? если имеется ввиду максимально возможная скорость, то скорее всего это будет сильно зависеть от того, куда вставлять, скореость чтение будет ограничено скоростью работы носителя, на всякий случай, при открытии файла поставь флажок (не помню как называется), оптимизирует последовательный доступ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2006, 21:56 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
anonymous99 a> Интересует методология. a> Клиенту на C++ надо из текстового файла вставить данные. a> Допустим там 3 поля через запятую Ты не указал среду разрабоки. Ты не указал ОС. Так же не раскрыта тема "вставить". Куда ? Зачем ? Что вставлять ? Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2006, 22:30 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
Общая рекомендация для таких вопросов - читать большими блоками, кратными размеру кластера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 10:37 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
на виндах можно ещё буферизацию отключить для пущей важности (последовательный доступ, увы, тормозит ощутимо), но для этого, гы, придётся приложить усилия :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 12:51 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
anonymous99Интересует методология. Клиенту на C++ надо из текстового файла вставить данные. Допустим там 3 поля через запятую. Подскажите или ткните, где прочитать об этом тут рекомендуют большими блоками - не верьте, это враки... размер блоков ДОЛЖНЫ быть подобраны так, чтобы их ЧТЕНИЕ и ОБРАБОТКА занимала бы одинаковое время. по поводу мега-супер длинных блоков, сам когда то (лет 15 назад) думал..оказалось - не оказалось...тогда блок обработки данных оказался "всего" 1500-2000 байт...это время обработки блока данных был приблизительно равен чтению его с винта... как это добиться... очень просто... делаете настраиваемый параметр - длину блока и начинаете с ним играться...результат Вас удивит :) с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 14:08 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
kolobok0 anonymous99Интересует методология. Клиенту на C++ надо из текстового файла вставить данные. Допустим там 3 поля через запятую. Подскажите или ткните, где прочитать об этом тут рекомендуют большими блоками - не верьте, это враки... размер блоков ДОЛЖНЫ быть подобраны так, чтобы их ЧТЕНИЕ и ОБРАБОТКА занимала бы одинаковое время. по поводу мега-супер длинных блоков, сам когда то (лет 15 назад) думал..оказалось - не оказалось...тогда блок обработки данных оказался "всего" 1500-2000 байт...это время обработки блока данных был приблизительно равен чтению его с винта... как это добиться... очень просто... делаете настраиваемый параметр - длину блока и начинаете с ним играться...результат Вас удивит :) с уважением (круглый) Ничем не обосновано. Если обработка данных у вас занимает значительное время, тогда используйте двойную буферизацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 14:19 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
для начала необходимо определиться с понятием "быстро". может быть файл открывается не как бинарный, а как текстовый и чтение идёт по строчкам и тормозняки связаны с неоптимальной обработкой данных функцией считывания. а может быть начинают читать всё сразу в память, а там памяти не хватает и своп начинает работать. опять же куда вставлять - если в локальную БД, то она может начать тормозить так, что все остальные разговоры окажутся бессмысленными, а может быть вставка идёт по записи, а может быть вставка через сеть, которая тормозит. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 14:19 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
Akh...Ничем не обосновано....Если обработка данных у вас занимает значительное время, тогда используйте двойную буферизацию. Вы не поняли уважаемый... 1) Обосновано чиссо научным подходом к осмыслению полученных реальных результатов... 2) То, что сказал я - НЕ зависит ОТ способа, алгоритма, кол-во кэшей, буферов и т.д. и т.п.. 3) Если Вы чего то не понимаете или не знаете - это не значит, что этого нет :) (С) Пример... Если Вы сделаете двадцатипятерную супер-мега буфферизацию, и будете читать по супер-мега блоками...И обрабатывать эти супер-мега блоки по 30 минут - то лично я ЗАЯВЛЯЮ - данный алгоритм НЕ ОПТИМАЛЕН... И как говорил один профессор математики, выводя на память очередное док-во на доске...-"Кто не верит - пусть проверит." с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 14:27 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
Меня интересует базовый подходы. OC - Unix. Как оптимизация должна быть сделана на стороне клиента? Какие алгоритмы надо использовать при обработки больших файлов? Абстрагируясь от скорости БД, скорости работы носителя. Вставить надо в SQL-ную таблицу, в которой 3 поля. Ф.И.О. Вставлять надо из текстового файлы, где поля разделены запятой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 14:30 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
Akh...тогда используйте двойную буферизацию. в догонку вопрос... индексные страницы никогда не строили , уважаемый ? если да - расскажите пожалуйста каков размер был их... и каков размер индексных страниц в аналогичной бд ? гы.. (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 14:30 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
kolobok0Вы не поняли уважаемый... 1) Обосновано чиссо научным подходом к осмыслению полученных реальных результатов... 2) То, что сказал я - НЕ зависит ОТ способа, алгоритма, кол-во кэшей, буферов и т.д. и т.п.. 3) Если Вы чего то не понимаете или не знаете - это не значит, что этого нет :) (С) Пример... Если Вы сделаете двадцатипятерную супер-мега буфферизацию, и будете читать по супер-мега блоками...И обрабатывать эти супер-мега блоки по 30 минут - то лично я ЗАЯВЛЯЮ - данный алгоритм НЕ ОПТИМАЛЕН... И как говорил один профессор математики, выводя на память очередное док-во на доске...-"Кто не верит - пусть проверит." с уважением (круглый) Теперь выше предложение напоминает американскую пропоганду товаров, где пол часа рассказывают одно и тоже пытаясь добиться, чтобы им поверили. Пункт 1 - голословен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 14:33 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
kolobok0 Akh...тогда используйте двойную буферизацию. в догонку вопрос... индексные страницы никогда не строили , уважаемый ? если да - расскажите пожалуйста каков размер был их... и каков размер индексных страниц в аналогичной бд ? гы.. (круглый) На вертолете не летали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 14:35 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
anonymous99Какие алгоритмы надо использовать при обработки больших файлов? Абстрагируясь от скорости БД, скорости работы носителя. алгоритмы чего? разделения текстовой строки на три поля? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 14:35 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
AkhНа вертолете не летали? было дело...это относиться к теме ? (круглый) ЗЫ Я так понимаю, пошло словоблудие... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 14:37 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
anonymous99Абстрагируясь от скорости БД, скорости работы носителя. Вопрос в опитимизации Линукс и БД? Тогда вам в соответствующие форумы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 14:37 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
kolobok0 AkhНа вертолете не летали? было дело...это относиться к теме ? (круглый) ЗЫ Я так понимаю, пошло словоблудие... По всей видимости, мы говорим про разные проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 14:39 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
AkhПо всей видимости, мы говорим про разные проблемы. OFF кстати говоря - вертолёт не плохая весчь. и прыгать с него...и летать... тех, кого проектирует сие дивные машины в обиходе называют шестерёнщиками...щестерёнок там много... несколько тысяч...от так вот... кстати, ышо красиво взлетают и садятся гидросамолёты... особенно единственный в мире советский а40... (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 14:42 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
kolobok0...кстати, ышо красиво взлетают и садятся гидросамолёты... особенно единственный в мире советский а40... OFF ышо не плохо сидеть на месте штурмана в момент взлёта и посадки в ил76тд - зрелище ещё то...спать в его заглушках мона, но на диванчике ан8 то же мона...яки трясуться при взлёте, но перегрузки на них прикольно переносить... не давайте лучше по программирование...или электронику например... вот помню в дестве лет 30 назад передатчики лепили, всего на одном мп39 и феритовом стержне...хана всем приёмникам в радиусе несколько метров... (круглый) ЗЫ что то я енто...обо всём :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 14:52 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
kolobok0 kolobok0...кстати, ышо красиво взлетают и садятся гидросамолёты... особенно единственный в мире советский а40... OFF ышо не плохо сидеть на месте штурмана в момент взлёта и посадки в ил76тд - зрелище ещё то...спать в его заглушках мона, но на диванчике ан8 то же мона...яки трясуться при взлёте, но перегрузки на них прикольно переносить... не давайте лучше по программирование...или электронику например... вот помню в дестве лет 30 назад передатчики лепили, всего на одном мп39 и феритовом стержне...хана всем приёмникам в радиусе несколько метров... (круглый) ЗЫ что то я енто...обо всём :) Все нормально? ;) ЗЫ: у яков 40-х какой-то шланг, возле правого крыла, при посадке переодически отпаливается. Заправочный что ли... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 15:04 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
Понимаете, я же не могу сделать строку const char * или string бесконечной длины. Это будет не эффективно. Мне нужно знать как разбить на запросы этот процесс вставки? По какому принципу? Разбор строки по запятой не интересует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 15:05 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
anonymous99По какому принципу? выделяешь кусок данных, соответствующий одной записи Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 15:24 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
По одной записи что ли вставлять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 15:32 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
anonymous99По одной записи что ли вставлять?куда вставлять-то ? Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 15:38 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
anonymous99Меня интересует базовый подходы. OC - Unix. Как оптимизация должна быть сделана на стороне клиента? Какие алгоритмы надо использовать при обработки больших файлов? Абстрагируясь от скорости БД, скорости работы носителя. Вставить надо в SQL-ную таблицу, в которой 3 поля. Ф.И.О. Вставлять надо из текстового файлы, где поля разделены запятой. БД какая? Некоторые из них умеют "заливаться" данными при помощи специализированных утилит (например SQL*Loader для Oracle), причём делают это вполне эффективно. Возможно, стоит пойти именно таким путём... OFFTOP: to Горячие финские парни: Вы чего разошлись-то? Да ещё с понедельника... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 15:52 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
Хорошо. Тогда так. Мне надо сформировать запрос типа "INSERT INTO table (name, surname) VALUES ('Name', 'Surname');". Для каждой записи в текстовом файле мне надо писать этот запрос, а потом его выполнять? Или будет быстрее сразу сформировать несолько таких "insert into" в одном string и затем их все сразу выполнить? Есть ли разница по скорости? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 16:04 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
Мне кажется вполне очевидным то, что узким местом будет загрузка в БД, а не чтение и парсинг файла с данными. По поводу загрузки - хорошо, если есть bulk insert. Я бы ещё и индекс отключил и построил бы его после загрузки. Оптимизация чтения файла явно не нужна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 17:44 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
anonymous99Хорошо. Тогда так. Мне надо сформировать запрос типа "INSERT INTO table (name, surname) VALUES ('Name', 'Surname');". Для каждой записи в текстовом файле мне надо писать этот запрос, а потом его выполнять? Или будет быстрее сразу сформировать несолько таких "insert into" в одном string и затем их все сразу выполнить? Есть ли разница по скорости? Лучше сформировать файл типа CSV и загрузить его. Многие БД поддерживают процедуру подобной загрузки. Т.е., возможно, вообще ничего писать не надо, поскольку эти процедуры позволяют настраивать разделители. LOAD INTO ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 17:51 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
http://]http://dev.mysql.com/doc/refman/4.1/en/load-data.html По ссылке - документация MySQL LOAD INTO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 18:12 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
niknameMySQL Не стоит спешить, мы пока так и не узнали у автора какая БД используется... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 18:16 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
Dmitrii K. niknameMySQL Не стоит спешить, мы пока так и не узнали у автора какая БД используется... LOAD INTO есть в большинстве БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 18:21 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
nikname Dmitrii K. niknameMySQL Не стоит спешить, мы пока так и не узнали у автора какая БД используется... LOAD INTO есть в большинстве БД. Да понятно, см. пред. страницу, я уже приводил пример SQL*Loader ) Просто преждевременно конкретизировать, пока мы не знаем целевой БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 18:35 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
Dmitrii K. DK> Просто преждевременно конкретизировать, пока мы не знаем DK> целевой БДи похоже не узнаем :) Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 20:00 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
Карабас Барабас Dmitrii K. DK> Просто преждевременно конкретизировать, пока мы не знаем DK> целевой БДи похоже не узнаем :) Posted via ActualForum NNTP Server 1.3 Угу. А если узнать постановку в оригинале... то и текстовик наверное создавать не стоило. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 20:52 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
mayton m> Угу. А если узнать постановку в оригинале... то и m> текстовик наверное создавать не стоилоЧто-то подсказывает мне, что исходный файл ему присылают .... Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 20:55 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
ну вот так всегда, народ возбудился, а возбудитель смылся:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 21:06 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
:)) Да тут я. Это вопрос на собеседовании в Яндекс. :) --- Вот он полностью: Вам нужно создать в 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 записей из файла. Опишите, как бы вы стали реализовывать эту задачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 21:25 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
Конкретные условия задачи не так важны. Мне интересна методология. Да и вопрос этот не на SQL, а на C++. Наверно в нем предполагается использовать один из стандартных контейнеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 21:27 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
anonymous99Конкретные условия задачи не так важны. Мне интересна методология. Да и вопрос этот не на SQL, а на C++. Наверно в нем предполагается использовать один из стандартных контейнеров. http://company.yandex.ru/inside/job/comm_developer.xml Вопрос 3 Базы данных/SQL. Вам нужно создать в MySQL таблицу со следующей структурой Сходите по ссылке, которую приводил nikname (он таки угадал с базой ) ). Ну и спросите в форуме по MySQL, скорее всего это типичная задача. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 22:59 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
anonymous99Наверно в нем предполагается использовать один из стандартных контейнеров.нет, в вопросе подразумевается стандартный способ заливки в мускул большого объёма данных - load data infile ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 15:32 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
Кто-нить в C/C++ это делал? Просвятите, где почитать. Я не в курсах. Надо C API использовать? Или mysql++? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 21:59 |
|
||
|
Как быстро вставить 500М из текстового файла?
|
|||
|---|---|---|---|
|
#18+
http://dev.mysql.com/doc/refman/5.0/en/c-api-function-overview.html прокрути табличку и читай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 11:28 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2030546]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 312ms |

| 0 / 0 |
