Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
Dba cdb
Новая тема
Ответить
цитата
07/02/12 в 18:13
freeek
есть файл 600к строк (можем прочитать через
file
чтобы получить массив)
кто бы и как записал их в базу cdb?, надо.
последовательными вставками кажется долго.
цитата
09/02/12 в 14:32
freeek
вопрос никто не осилит?
замерил, 60к уходят в базу за пол-часа
используется Database Abstraction Layer Functions.
цитата
09/02/12 в 14:33
freeek
локалка
freebsd 7.3 256mb
apache 2.2
php 5.2.17
цитата
09/02/12 в 15:05
Stek
freeek писал:
кто бы и как записал их в базу cdb?, надо.
Что за cdb ?
Вообще открываешь файл, открываешь базу, лочишь таблицы, читаешь построчно и пишешь в базу, потом снимаешь лок с таблицы. Закрываешь файл, базу.
цитата
09/02/12 в 15:09
webdatadigger
Не знаю, что за CDB, но есть универсальный способ. Монтируем директорию в оперативную память, останавливаем сервер базы данных (если он есть) и настраиваем его на работу с этой директорией, запускаем. Скорость записи повысится в разы.
Под виндой не знаю как делать, под linux очень просто:
sudo mount -t tmpfs tmpfs /mnt
цитата
09/02/12 в 15:23
freeek
это плоские файлы
http://cr.yp.to/cdb.html
цитата
09/02/12 в 15:31
Stek
ну и изврат. У тебя основную нагрузку будет нести интерфейс работы с cdb, пока он там будет все хешировать и лочить.
Просто прочитать файл в 600к строк займет наверное пару секунд, не дольше.
цитата
09/02/12 в 15:49
freeek
а не жирно будет каждый раз читать файлы по 7мб и что то в нем искать?
cdb по утверждениям работает быстрее чем sqlite, вот и есть желание проверить.
цитата
09/02/12 в 16:18
Stek
не понимаю, тебе надо импортировать файл в базу или же работать с ним как с базой ? При чем тут "каждый раз читать файлы по 7мб" ?
цитата
09/02/12 в 16:35
freeek
да, работать как с базой.
у меня проблем нет, у меня просто вопрос почему так долго запись идет и возможно кто то работал ранее с таким форматом, что то посоветовать может.
цитата
09/02/12 в 17:49
webdatadigger
Пробовал использовать простые key-value решения, не порадовала скорость записи. Остановился на mongodb, она записываемую информацию кэширует и дампит на диск раз в минуту. А эта cdb-библиотека скорее всего на каждую новую запись делает обращение к диску, отсюда и тормоза. Нужна быстрая скорость: работайте с оперативной памятью. Или монтируйте там файловую систему или используйте ту БД, что хранит всё в памяти: memcached, redis, например.
Я по online-доке толком не понял, что есть cdb (просто key-value или чо-то поизвращённее) но SQL-запросов там точно нет
цитата
10/02/12 в 13:10
freeek
вопрос снят.
из-за невнимательности забыл указать handler (тип базы который хочу использовать) и по умолчанию использовался flatfile, из-за этого запись длилась ну очень долго, часами, потому что flatfile внутри похож на обычный файл +какая то своя информация.
указав нужный handler в лице cdb, файл источник читался равным порциями (по строкам)и записывался в базу.
из файла в 6,7мб получилась база в 21,5мб, все 620к записей ушли в базу за 40 секунд.
выборка по ключу на freebsd 7.3 256mb, apache 2.2 , php 5.2.17 быстрее аналогичной из mysql примерно раз в 5 получается, сильно не уточнял, некогда.
пс: это так, вдруг кому то понадобиться
пс: всем спасибо, всех оценил.
цитата
10/02/12 в 13:28
ibiz
freeek писал:
указав нужный handler в лице cdb, файл источник читался равным порциями (по строкам)и записывался в базу.
из файла в 6,7мб получилась база в 21,5мб, все 620к записей ушли в базу за 40 секунд.
выборка по ключу на freebsd 7.3 256mb, apache 2.2 , php 5.2.17 быстрее аналогичной из mysql примерно раз в 5 получается, сильно не уточнял, некогда.
пс: это так, вдруг кому то понадобиться
пс: всем спасибо, всех оценил.
выборка из базы весом в 7мб?
очень интересно, а если база весит под гиг и там 5м строк, будет такой же выигрыш в 5 раз?
напиши плиз, как собирал и настраивал, я бы тоже погонял
цитата
10/02/12 в 13:35
Stek
freeek писал:
php 5.2.17 быстрее аналогичной из mysql примерно раз в 5 получается, сильно не уточнял, некогда.
Хоть примерно в числах скажи ? А то у меня что то сомнения по поводу такой скорости. В mysql если кинуть индекс, то тоже все весьма быстро делается.
цитата
10/02/12 в 14:04
freeek
выборка была по индексированному значению, по сути получается поиск шел по индексу
в среднем 0,0034 против примерно 0,0007, под рукой нет, все вырубил, надо идти, позже конечно более доскональна проверю, так как самому интересно.
по описанию cdb позиционируется как быстрая база для чтения константных данных, пошарив по тырнэтам, вроде довольно быстрая штука. и ее таскать с собой можно
цитата
10/02/12 в 14:06
freeek
http://cr.yp.to/cdb/install.html
здесь инструкции, качаем, инсталируем.
работа через Database (dbm-style) Abstraction Layer Functions, в мануале к пыху есть все что нужно, чтоб работало
цитата
17/02/12 в 14:00
ibiz
что-то я не могу настроить, базы в 5 метров жрет, а на гиговой виснет процесс
Новая тема
Ответить
Эта страница в полной версии