|
|
|
Выбор компактной СУБД
|
|||
|---|---|---|---|
|
#18+
День добрый. Меня интересует мнение уважаемой аудитории относительно выбора СУБД удовлетворяющей следующим требованиям: - свободное использование в коммерческих продуктах - минимальный размер - возможность статической компиляции в собственное приложение - наличие C++ библиотеки для работы; - поддержка языка SQL (основной набор команд). БД будет использоваться для хранения логов работы программы. Основные действия: - запись в БД (вероятно, достаточно одного коннекта, то есть возможно блокирование на уровне файла); - получение отчетов (группировки + поиск по временному интервалу). Вероятно, в БД будет немного записей: - 3-10 таблиц; - в основном все таблицы справочного характера (не более 100-200 записей); - одна основная таблица (10 000 - 100 000 записей). Мои поиски показали, что есть варианты: - FireBird Embedded; - SQLite. Сам пока склоняюсь в сторону FireBird Embedded, хотя пугает размер. Что можете посоветовать для моей задачи? Какие плюсы и минусы каждая СУБД имеет? Возможно, кто-то имеет опыт разработки ПО, где логи хранились в СУБД. Было бы интересно узнать применяемые технологии и полученные результаты. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2007, 20:55 |
|
||
|
Выбор компактной СУБД
|
|||
|---|---|---|---|
|
#18+
miksoft MySQL Одним из требований, предъявляемых мною к СУБД является: Alexey.Chaley - свободное использование в коммерческих продуктах К сожалению, mySQL не подходит по этому критерию http://www.mysql.com/company/legal/licensing/ For Commercial OEMs, ISVs and VARs: * For OEMs, ISVs, and VARs who distribute MySQL with their products, and do not license and distribute their source code under the GPL, MySQL provides a flexible OEM Commercial License. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2007, 01:19 |
|
||
|
Выбор компактной СУБД
|
|||
|---|---|---|---|
|
#18+
Как вариант, MSSQL Compact Edition. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2007, 08:00 |
|
||
|
Выбор компактной СУБД
|
|||
|---|---|---|---|
|
#18+
Танцор ПасадобляFireBird Да он там уже... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2007, 13:14 |
|
||
|
Выбор компактной СУБД
|
|||
|---|---|---|---|
|
#18+
Di_LIne Да он там уже... От добра добра не ищут! А логи в нем хранить - милое дело. Сам чего-только там не храню. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2007, 13:47 |
|
||
|
Выбор компактной СУБД
|
|||
|---|---|---|---|
|
#18+
Танцор Пасадобля От добра добра не ищут! А логи в нем хранить - милое дело. Сам чего-только там не храню. :) А какие отчеты Вы строили по логам (насколько сложные запросы)? И какого объема логи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2007, 14:06 |
|
||
|
Выбор компактной СУБД
|
|||
|---|---|---|---|
|
#18+
Alexey.ChaleyА какие отчеты Вы строили по логам (насколько сложные запросы)? И какого объема логи? Кто, когда, где, чего поменял. В чем измеряется сложность запроса? Потестировать логгирование в FireBird можете сами: в ibexpert даже есть соответствующее меню Log Manager ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2007, 15:56 |
|
||
|
Выбор компактной СУБД
|
|||
|---|---|---|---|
|
#18+
Берите SQLITE 3-й по всем параметрам подходит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2007, 16:58 |
|
||
|
Выбор компактной СУБД
|
|||
|---|---|---|---|
|
#18+
A.V.Goncharyk Берите SQLITE 3-й по всем параметрам подходит Согласен, подходит. Но пугает то, SQLite хранит и использует не типизированные данные. Я с ним не работал, но этот факт очень насторожил. SQLite lets me insert a string into a database column of type integer! This is a feature, not a bug. SQLite does not enforce data type constraints. Any data can be inserted into any column. You can put arbitrary length strings into integer columns, floating point numbers in boolean columns, or dates in character columns. The datatype you assign to a column in the CREATE TABLE command does not restrict what data can be put into that column. Every column is able to hold an arbitrary length string. (There is one exception: Columns of type INTEGER PRIMARY KEY may only hold a 64-bit signed integer. An error will result if you try to put anything other than an integer into an INTEGER PRIMARY KEY column.) But SQLite does use the declared type of a column as a hint that you prefer values in that format. So, for example, if a column is of type INTEGER and you try to insert a string into that column, SQLite will attempt to convert the string into an integer. If it can, it inserts the integer instead. If not, it inserts the string. This feature is sometimes call type or column affinity. Как этот факт влияет на работу СУБД? В чем плюсы и минусы такого представления данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2007, 17:07 |
|
||
|
Выбор компактной СУБД
|
|||
|---|---|---|---|
|
#18+
SQLite думается далековато до FireBird. Аргументы: FireBird - полноценная СУБД. SQLite - неполноценная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2007, 18:04 |
|
||
|
Выбор компактной СУБД
|
|||
|---|---|---|---|
|
#18+
Танцор ПасадобляSQLite думается далековато до FireBird. Аргументы: FireBird - полноценная СУБД. SQLite - неполноценная.Армяне лучше чем грузины! (с) Анекдот ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2007, 18:34 |
|
||
|
Выбор компактной СУБД
|
|||
|---|---|---|---|
|
#18+
DocAlАрмяне лучше чем грузины! (с) Анекдот Каждому, конечно своё... Я бы сказал: армянки лучше чем грузинки! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2007, 19:11 |
|
||
|
Выбор компактной СУБД
|
|||
|---|---|---|---|
|
#18+
Какая разница как SQLITE _хранит_ информацию... работает он коректно и со своей работой справляется отлично... лучше всего возьмите и попробуйте, с ней разбиратся от сил пол часа... а лучше попробуйте и один и другой вариант и потестируйте.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2007, 13:59 |
|
||
|
Выбор компактной СУБД
|
|||
|---|---|---|---|
|
#18+
A.V.Goncharykа лучше попробуйте и один и другой вариант и потестируйте .... И как ж енто сделать? Только конкретно, без манной каши. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2007, 14:51 |
|
||
|
Выбор компактной СУБД
|
|||
|---|---|---|---|
|
#18+
A.V.GoncharykКакая разница как SQLITE _хранит_ информацию... работает он коректно Хммм... запись произвольного текста в числовое поле - сложно назвать корректной работой. И пусть сколько угодно говорят, что дескать "this is a feature, not a bug" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2007, 14:58 |
|
||
|
Выбор компактной СУБД
|
|||
|---|---|---|---|
|
#18+
ЛПХммм... запись произвольного текста в числовое поле - сложно назвать корректной работой. Дезинформация... она хранит данные в зависимости от их типа. Базовых типов -- целое, вещественное, строка, блоб. Alexey.ChaleyДень добрый. Меня интересует мнение уважаемой аудитории относительно выбора СУБД удовлетворяющей следующим требованиям:... SQLite. Лимит на одну запись -- 1 мег. В 2.х версии точно, сейчас может поменялось. Можно перекомпилить под любой размер записи. Но мега для логов хватает. Логи хранить в ней нормально с одним но... Это все ж таки встраиваемая субд, не рассчитанная на сколько-нибудь большие объемы. На второй версии делал протенькую программку для обсчета логов ВинРоута -- чего куда сколько и почему накачал... База была мег 300, запросы вида Код: plaintext 1. 2. 3. 4. при наличии индексов выполнялись значительное время. Не минуты, но с ощутимой задержкой (раздражающей). На любом полноценном сервере, такой запрос на таком объеме проглотится легко. Вообще я sqlite плотно работал(ю) -- приятная вещь для своих задач. По всем вашим требованиям она подходит идеально. Поэтому мой совет -- скачать, посмотреть. Создать БД, написать скрипт генерации данных, наполнить базу до максимального расчетного размера. Погонять запросы. Покрутить параметры -- sync, cache... P.S. Аккуратно с обертками и тулзами для администрирования -- некоторые из них являются криворукими поделками. Реальный пример -- обертка с++ (или делфи) fetch выполняла в разы дольше, чем должно быть. Можно сделать неверный вывод о производительности... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2007, 09:48 |
|
||
|
Выбор компактной СУБД
|
|||
|---|---|---|---|
|
#18+
Об оптимизации запросов в sqlite http://www.sqlite.org/optoverview.html вики http://www.sqlite.org/cvstrac/wiki Модуль полнотекстного поиска http://ft3.sourceforge.net/ русское вики http://www.freesource.info/wiki/SQLite ещё интересно http://sqlitedbms.sourceforge.net/index.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2007, 10:53 |
|
||
|
Выбор компактной СУБД
|
|||
|---|---|---|---|
|
#18+
Hello Серж, С> SQLite. Лимит на одну запись -- 1 мег. В 2.х версии точно, сейчас С> может поменялось. Можно перекомпилить под любой размер записи. Но С> мега для логов хватает. С> С> Логи хранить в ней нормально с одним но... Это все ж таки С> встраиваемая субд, не рассчитанная на сколько-нибудь большие объемы. С> С> На второй версии делал протенькую программку для обсчета логов С> ВинРоута -- чего куда сколько и почему накачал... База была мег 300, С> запросы вида C>|...snip...| Сам использовал SQLite базы до 200 МБ. Но без русского языка. А как там с поддержкой русского collation? Судя по документации, в реализованно только бинарное сравнение и нечувствительное к регистру для латиницы. К существенным проблемам можно отнести выполнение нескольких предложений (statements) в рамках одного соединения (connection) в разных потоках (threads). Приводит к ошибке "library routine called out of sequence" или повреждениям в базе. Возможный обход - использование, например, thread-safe ODBC драйвера - см. http://www.ch-werner.de/sqliteodbc/ Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2007, 13:47 |
|
||
|
Выбор компактной СУБД
|
|||
|---|---|---|---|
|
#18+
Dmitriy Ivanov Сам использовал SQLite базы до 200 МБ. Но без русского языка. А как там с поддержкой русского collation? Судя по документации, в реализованно только бинарное сравнение и нечувствительное к регистру для латиницы. К существенным проблемам можно отнести выполнение нескольких предложений (statements) в рамках одного соединения (connection) в разных потоках (threads). Приводит к ошибке "library routine called out of sequence" или повреждениям в базе. Возможный обход - использование, например, thread-safe ODBC драйвера - см. http://www.ch-werner.de/sqliteodbc/ В 3-ке с русским нормально, есть там коллайшины, вернее callback функции. На вход этой функции две строки, на выходе ты должен дать ответ -- какая из них больше. Ясное дело вызываешь внутри AnsiCompareStr и все дела... Про проблему с потоками не слыхал... она заявлена как потокобезопасная. Скорее всего проблема не sqlite, а на другой стороне ;) У меня крутится в разных потоках все подряд -- от select до pragma... Ни разу не видел такой ошибки. Был бы АДОшный драйвер, было бы супер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2007, 17:54 |
|
||
|
Выбор компактной СУБД
|
|||
|---|---|---|---|
|
#18+
По вопросу использования FireBird. Насколько она отошла в части реализации алгоритмов поиска от InterBase 7.1 не знаю, но вот вам информация для размышления. Писали что-то вроде системы принятия решения в ответ на реакцию АСУ. Были там и логи и статичные данные, но вот факт: 1. Начальный размер БД 1.7 Мб - работает быстро, все радуются; 2. Размер БД 97 Мб - производительность упала в 3 раза, уже волнуются; 3. Сейчас размер БД 150 Мб - производительность упала относительно 1 в 9 раз ...приплыли... аппаратная часть выдает ошибки из-за того, что ответ от БД приходит слишком поздно (8 секунд!!!), вот такие дела (и это при подключении 2-х(двух) клиентов). Если это не критично, то можете использовать, а вот нам уже дали задание на доработку...курим...думаем... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 09:56 |
|
||
|
Выбор компактной СУБД
|
|||
|---|---|---|---|
|
#18+
Привет, MaxDAG! Ты пишешь: MaxDAGM> Насколько она отошла в части реализации алгоритмов поиска от InterBase 7.1какие такие алгоритмы?.. MaxDAGM> Если это не критично, то можете использовать, а вот нам уже дали задание на M> доработку...курим...думаем...тряпки жжем, смеёмся... (С) -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 10:08 |
|
||
|
Выбор компактной СУБД
|
|||
|---|---|---|---|
|
#18+
автор2. Размер БД 97 Мб - производительность упала в 3 раза, уже волнуются; 3. Сейчас размер БД 150 Мб - производительность упала относительно 1 в 9 раз ...приплыли... аппаратная часть выдает ошибки из-за того, что ответ от БД приходит слишком поздно (8 секунд!!!), вот такие дела (и это при подключении 2-х(двух) клиентов). честное слово, и смешно и грустно. Вы и Оракл точно так же загнете, я точно говорю. 150 мегабайт - это совершенно несерьезный размер. Если бы Вы сказали что у Вас Firebird на 10 гиг базе тормозит, то еще можно было бы посоветовать как-то настройки подкрутить. Здесь же в форуме по IB/FB однажды был топик, где человеку досталась софтина, которая умудрялась давать такие запросы к 100мб базе, что серверу приходилось генерить 1гб временный файл. Совет был понятно какой - стереть софтину и забыть про нее. И вообще. Если у Вас происходит подобный затык при начальном использовании сервера, то это значит Вы что-то совершенно однозначно делаете НЕ ТАК. По Вашему примеру - настолько не так, что случаи появления подобных тормозов ЕДИНИЧНЫ, и определяются не сервером, а именно тем, как начинающий разработчик над ним измывается. Здесь просто надо обратиться с вопросом сюда, на форум ibase.ru или в support ibase.ru, а не забивать, а потом выкладывать вот такие "факты" направо и налево. Потому что любой человек, у которого с IB/FB все нормально, просто забракует подобное выступление, так же как это только что сделал я. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 10:39 |
|
||
|
|

start [/forum/topic.php?fid=35&fpage=31&tid=1553388]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
27ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 260ms |
| total: | 391ms |

| 0 / 0 |
