powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Помогите определиться с выбором СУБД.
25 сообщений из 35, страница 1 из 2
Помогите определиться с выбором СУБД.
    #35977055
Саабразим Аль-каши Бухани
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изучаю Java, хочу сделать сайтик (jsp). Для него нужна БД. Поскольку в дальнейшем хотелось бы иметь возможность как-то его развивать, а сейчас нет никакого желания платить, эта СУБД должна быть бесплатная и кроссплатформенная (писать мне пока проще под виндой, а вот хостинг возможно буит линуксовый). Посему первый вопрос: какие критерии я упустил? Какие еще подводные камни встретятся? И второй собственно основной. На данный момент я колеблюсь между DB2 express-c (MSSQL Express отсеял из-за некросплатформености, а по сравнению с Ораклом в DB2 не ограничен объем БД, да и вроде интеграция с java выглядит заманчиво) и MySQL (главным образом из-за его распространенности, в т.ч. у хостеров). Какую выбрать? Не упустил ли я чего? Какие где минусы, плюсы?

PS. На данный момент опыт работы с БД небольшой и ограничен MSSQL.
...
Рейтинг: 0 / 0
Помогите определиться с выбором СУБД.
    #35977158
vb-expert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем!

Ситуация:
У меня работает MySQL.
Структура таблицы:
---------------------------------------------------------------------
DROP TABLE IF EXISTS `pd_pt_documents`.`_index_a`;
CREATE TABLE `pd_pt_documents`.`_index_a` (
`doc_id` int(10) unsigned NOT NULL,
`hash` int(10) NOT NULL DEFAULT '0',
`fp_offset` int(10) unsigned NOT NULL,
KEY `hash_idx` (`hash`) USING BTREE
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0 ROW_FORMAT=FIXED;
---------------------------------------------------------------------
итого - 3 поля.
Кол-во записей - 200.000.000

Всё что мне нужно это высокоскоростной поиск:

SELECT doc_id, fp_offset, hash FROM _index_a WHERE hash = 0000123
OR hash = 0000123
OR hash = 0000124
OR hash = 0000125
[...]
OR hash = 000999

Особенность:
В секунду на БД посылаеться 10 таких запросов.

Т.е. база просто засыпается сотнями тысяч запросов.

Вопрос: какая СУБД лучше всего справиться с такой задачей?
--
Заранее всем спасибо!
...
Рейтинг: 0 / 0
Помогите определиться с выбором СУБД.
    #35977183
Саабразим Аль-каши Бухани
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть, лучше подправить запросы?
...
Рейтинг: 0 / 0
Помогите определиться с выбором СУБД.
    #35977187
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
перепишите запрос либо через UNION ALL, либо через IN.

искомые значения hash действительно всегда идут подряд или это только пример?
...
Рейтинг: 0 / 0
Помогите определиться с выбором СУБД.
    #35977204
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саабразим Аль-каши Бухани, а со слоном как?
...
Рейтинг: 0 / 0
Помогите определиться с выбором СУБД.
    #35977227
Саабразим Аль-каши Бухани
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕН,
postgresql? Не видел не разу. А чем он лучше мускуля в контексте обсуждения?
...
Рейтинг: 0 / 0
Помогите определиться с выбором СУБД.
    #35977246
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саабразим Аль-каши Бухани,
1) Функциональность
2) Продуманность.
3) Можно использовать весь функционал в одном месте и сразу
...
Рейтинг: 0 / 0
Помогите определиться с выбором СУБД.
    #35977346
vb-expert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 miksoft:

У меня немного опыта с SQL -
уточните пожалуйста как именно и зачем "UNION ALL, либо через IN."?

Это повысит быстродействие?
...
Рейтинг: 0 / 0
Помогите определиться с выбором СУБД.
    #35977354
vb-expert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Саабразим Аль-каши Бухани:

Скажу спасибо за пинок в нужном направлениии!
Что именно оптимизировать?
...
Рейтинг: 0 / 0
Помогите определиться с выбором СУБД.
    #35977364
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb-expert2 miksoft:

У меня немного опыта с SQL -
уточните пожалуйста как именно и зачем "UNION ALL, либо через IN."?

Это повысит быстродействие?Скорее всего - да. Чтобы сказать точно, нужно видеть план текущего запроса и план переписанного запроса.
...
Рейтинг: 0 / 0
Помогите определиться с выбором СУБД.
    #35977403
Саабразим Аль-каши Бухани
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb-expert2 Саабразим Аль-каши Бухани:

Скажу спасибо за пинок в нужном направлениии!
Что именно оптимизировать?

Больше чем miksoft не скажу по имеющемуся куску. Мне вообще не очень ясно как могла возникнуть ситуация с таким количеством "..OR..". Опишите проблему более развернуто, а если это сделаете на форуме MySQL то шанс решить проблему будет еще выше.
...
Рейтинг: 0 / 0
Помогите определиться с выбором СУБД.
    #35977430
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
имхо быстрее чем MyIsam только база с Index Organized Table может получится (на таком запросе).
...
Рейтинг: 0 / 0
Помогите определиться с выбором СУБД.
    #35977673
vb-expert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Yo.! :

Спасибо за идею с IOT! Я немного рогуглил - IOT. Это только Oracle?
...
Рейтинг: 0 / 0
Помогите определиться с выбором СУБД.
    #35977677
vb-expert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 miksoft :

Замечания - хеши идут НЕ подряд (я подправил примеры)

Структура запроса (старого) была такая:
-----------------------------------------
SELECT doc_id, fp_offset, hash FROM _index_a WHERE hash = 204777
OR hash = -66780123
OR hash = 067831124
OR hash = -345125
[...много других хешей - размер кол-ва хешей регулирую переменной...]
OR hash = 000999
-----------------------------------------

Я почитал про IN и согласно Вашему совету переделал так:
-----------------------------------------
SELECT doc_id, fp_offset, hash FROM _index_a WHERE hash IN (234777,
-36780123,
067831124,
-345125,
[...много других хешей - размер кол-ва хешей регулирую переменной...]
000999)
-----------------------------------------

Быстродействие заметно увеличилось!

Статистика:

В БД - 52.000.000 записей.
Поиск (т.е. вышеописаный SELECT с IN вместо OR) 10000 хешей (размазаны по всем 52 миллионам - т.е.
почти всегда) худший вариант составляет 15-30 секунд.

Насколько я понимаю логику работы БД, наиболее оптимальным вариантом будет
именно максимально большего кол-ва хешей при SELECT-е
чтобы "проход по диску" был только один.

Я обязательно протестирую всё вышеописанное на Orace Index-Organized Tables.

Я стремлюсь к идеалу :-) но

Как ещё можно ускорить процесс?
...
Рейтинг: 0 / 0
Помогите определиться с выбором СУБД.
    #35977799
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb-expertСтатистика:

В БД - 52.000.000 записей.
Поиск (т.е. вышеописаный SELECT с IN вместо OR) 10000 хешей (размазаны по всем 52 миллионам - т.е.
почти всегда) худший вариант составляет 15-30 секунд.

Насколько я понимаю логику работы БД, наиболее оптимальным вариантом будет
именно максимально большего кол-ва хешей при SELECT-е
чтобы "проход по диску" был только один.

Я обязательно протестирую всё вышеописанное на Orace Index-Organized Tables.

Я стремлюсь к идеалу :-) но

Как ещё можно ускорить процесс?Требуется только чтение из этой таблицы? Тогда есть смысл попробовать в MySQL тип таблиц MEMORY.

10000 из 52.000.000 записей - это, скорее всего, не "проход по диску", а 10 тысяч INDEX RANGE SCAN-ов. Планы, чтобы можно было точно судить об этом, вы так и не показали.

Orace Index-Organized Tables требует наличия первичного ключа. И, имхо, вряд ли будет быстрее, чем чтение из покрывающего индекса в той же MySQL.
...
Рейтинг: 0 / 0
Помогите определиться с выбором СУБД.
    #35980645
Саабразим Аль-каши Бухани
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В праздники посмотрел (очень бегло) все 3 (pg,mysql,db2), все встали на убунте, заработали, но толком потестить ниасилил. У постгриса смущает отсутствие выбора визуальной тулзы толковой и бесплатной, нашел тока dgadmin. Симпатичен же "похожестью" на Оракл, маячит перспектива перехода на него, что вроде котируется у работодателей. У db2 не нравится практически полное отсутствие у хостеров, нравится схожестью диалектов с MSSQL, который я немного знаю.
Может, кто-то из тех, кто имел опыт работы хотябы с 2 из 3х из из упомянутых СУБД поделится впечатлениями?
...
Рейтинг: 0 / 0
Помогите определиться с выбором СУБД.
    #35980655
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саабразим Аль-каши Бухани, из клиентов стоит посмотреть ems manager LITE for postgreSQL.
...
Рейтинг: 0 / 0
Помогите определиться с выбором СУБД.
    #35980736
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саабразим Аль-каши Бухани, по возможностям,
у постгре более совершенный мультиверсионный механизм, более совершенный язык хранимых процедур,
есть возможности подключить разные языки хранимых процедур,система индексов и более мощный планировщик. В транзакциях можно делать почти всё: создавать таблицы, схемы, пользователей. Есть точки сохранения. В отличие от мелко-мягкоко сиквеля есть нормальные последовательности, и временные объекты(таблицы, представления, последовательности). В 8.4 плюс к этому есть табличные выражения, не как в 2005, а с более вменяемым синтаксисом. Рекурсивные запросы тоже есть. Более богатый выбор аналитических функций. Есть массивы и куча разных типов на все случаи жизни+ возможность реализации собственных.
У Сиквеля более легко организована репликация, 1С с ней работает быстрее(за счёт убогой реализации блокировок и запросов для постгре).
...
Рейтинг: 0 / 0
Помогите определиться с выбором СУБД.
    #35980908
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕНВ отличие от мелко-мягкоко сиквеля есть ... временные объекты(таблицы, представления, последовательности).Ну уж убавлять-то не надо. Тут рядом топик чуть ли не до 10 страниц разросся как раз про использование времянок в MSSQL.ОКТОГЕНРекурсивные запросы тоже есть.Правильнее сказать: вот только-только появились.ОКТОГЕНВ 8.4 плюс к этому есть табличные выражения, не как в 2005, а с более вменяемым синтаксисом.А чем Вам синтаксис table-valued функций не угодил?
...
Рейтинг: 0 / 0
Помогите определиться с выбором СУБД.
    #35981215
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_L, временных вьюх в MSSQL я не нашёл, как и последовательностей.
Контриб connectby был задолго до WITH RECURSIVE. С ним можно многое.
Я имел в виду не табличные функции(которые в постгри тоже есть давно), а WITH(CTE).
Они там разве был?
...
Рейтинг: 0 / 0
Помогите определиться с выбором СУБД.
    #35981285
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕНЯ имел в виду не табличные функции(которые в постгри тоже есть давно), а WITH(CTE).
Они там разве был?

В MS SQL поддержка CTE введена с 2005 версии.
...
Рейтинг: 0 / 0
Помогите определиться с выбором СУБД.
    #35981292
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕНSenya_L, временных вьюх в MSSQL я не нашёл, как и последовательностей.SEQUENCES действительно нет. :( А вот про временные вьюхи... Я бы не сказал, что это насущная необходимость.
ОКТОГЕНSenya_L, временных вьюх в MSSQL я не нашёл, как и последовательностей.
Контриб connectby был задолго до WITH RECURSIVE. С ним можно многое.
Я имел в виду не табличные функции(которые в постгри тоже есть давно), а WITH(CTE).
Они там разве был?"Они" - это CTE в MSSQL что ли? С 2005 есть и будет есть :). И от стандарта в MSSQL отличие, насколько я знаю, разве что не требуется RECURSIVE указывать. Так чем же синтаксис не нравится - тем более непонятно.
...
Рейтинг: 0 / 0
Помогите определиться с выбором СУБД.
    #35981307
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_L, а можно пример(ссылочку) пользования with без рекурсий? Как отличаются СТЕ от рекурсивных запросов в MSSQL?
...
Рейтинг: 0 / 0
Помогите определиться с выбором СУБД.
    #35981330
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕНSenya_L, а можно пример(ссылочку) пользования with без рекурсий? Как отличаются СТЕ от рекурсивных запросов в MSSQL?Можно, тынц . Кстати, нерекурсивные CTE-выражения можно приравнять к временным просмотрам, с некоторыми ограничениями, конечно.

ЗЫ. Что же Вы критикуете не видев в глаза фичу? ;)
...
Рейтинг: 0 / 0
Помогите определиться с выбором СУБД.
    #35981375
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_L, блин, точно не до конца разобрался.(((
...
Рейтинг: 0 / 0
25 сообщений из 35, страница 1 из 2
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Помогите определиться с выбором СУБД.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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