|
|
|
Помогите определиться с выбором СУБД.
|
|||
|---|---|---|---|
|
#18+
Изучаю Java, хочу сделать сайтик (jsp). Для него нужна БД. Поскольку в дальнейшем хотелось бы иметь возможность как-то его развивать, а сейчас нет никакого желания платить, эта СУБД должна быть бесплатная и кроссплатформенная (писать мне пока проще под виндой, а вот хостинг возможно буит линуксовый). Посему первый вопрос: какие критерии я упустил? Какие еще подводные камни встретятся? И второй собственно основной. На данный момент я колеблюсь между DB2 express-c (MSSQL Express отсеял из-за некросплатформености, а по сравнению с Ораклом в DB2 не ограничен объем БД, да и вроде интеграция с java выглядит заманчиво) и MySQL (главным образом из-за его распространенности, в т.ч. у хостеров). Какую выбрать? Не упустил ли я чего? Какие где минусы, плюсы? PS. На данный момент опыт работы с БД небольшой и ограничен MSSQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2009, 15:30 |
|
||
|
Помогите определиться с выбором СУБД.
|
|||
|---|---|---|---|
|
#18+
Привет всем! Ситуация: У меня работает 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 таких запросов. Т.е. база просто засыпается сотнями тысяч запросов. Вопрос: какая СУБД лучше всего справиться с такой задачей? -- Заранее всем спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2009, 16:07 |
|
||
|
Помогите определиться с выбором СУБД.
|
|||
|---|---|---|---|
|
#18+
Может быть, лучше подправить запросы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2009, 16:14 |
|
||
|
Помогите определиться с выбором СУБД.
|
|||
|---|---|---|---|
|
#18+
перепишите запрос либо через UNION ALL, либо через IN. искомые значения hash действительно всегда идут подряд или это только пример? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2009, 16:15 |
|
||
|
Помогите определиться с выбором СУБД.
|
|||
|---|---|---|---|
|
#18+
Саабразим Аль-каши Бухани, а со слоном как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2009, 16:20 |
|
||
|
Помогите определиться с выбором СУБД.
|
|||
|---|---|---|---|
|
#18+
ОКТОГЕН, postgresql? Не видел не разу. А чем он лучше мускуля в контексте обсуждения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2009, 16:27 |
|
||
|
Помогите определиться с выбором СУБД.
|
|||
|---|---|---|---|
|
#18+
Саабразим Аль-каши Бухани, 1) Функциональность 2) Продуманность. 3) Можно использовать весь функционал в одном месте и сразу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2009, 16:38 |
|
||
|
Помогите определиться с выбором СУБД.
|
|||
|---|---|---|---|
|
#18+
2 miksoft: У меня немного опыта с SQL - уточните пожалуйста как именно и зачем "UNION ALL, либо через IN."? Это повысит быстродействие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2009, 17:22 |
|
||
|
Помогите определиться с выбором СУБД.
|
|||
|---|---|---|---|
|
#18+
2 Саабразим Аль-каши Бухани: Скажу спасибо за пинок в нужном направлениии! Что именно оптимизировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2009, 17:24 |
|
||
|
Помогите определиться с выбором СУБД.
|
|||
|---|---|---|---|
|
#18+
vb-expert2 miksoft: У меня немного опыта с SQL - уточните пожалуйста как именно и зачем "UNION ALL, либо через IN."? Это повысит быстродействие?Скорее всего - да. Чтобы сказать точно, нужно видеть план текущего запроса и план переписанного запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2009, 17:28 |
|
||
|
Помогите определиться с выбором СУБД.
|
|||
|---|---|---|---|
|
#18+
vb-expert2 Саабразим Аль-каши Бухани: Скажу спасибо за пинок в нужном направлениии! Что именно оптимизировать? Больше чем miksoft не скажу по имеющемуся куску. Мне вообще не очень ясно как могла возникнуть ситуация с таким количеством "..OR..". Опишите проблему более развернуто, а если это сделаете на форуме MySQL то шанс решить проблему будет еще выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2009, 17:49 |
|
||
|
Помогите определиться с выбором СУБД.
|
|||
|---|---|---|---|
|
#18+
имхо быстрее чем MyIsam только база с Index Organized Table может получится (на таком запросе). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2009, 18:10 |
|
||
|
Помогите определиться с выбором СУБД.
|
|||
|---|---|---|---|
|
#18+
2 Yo.! : Спасибо за идею с IOT! Я немного рогуглил - IOT. Это только Oracle? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2009, 00:37 |
|
||
|
Помогите определиться с выбором СУБД.
|
|||
|---|---|---|---|
|
#18+
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. Я стремлюсь к идеалу :-) но Как ещё можно ускорить процесс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2009, 00:54 |
|
||
|
Помогите определиться с выбором СУБД.
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2009, 10:13 |
|
||
|
Помогите определиться с выбором СУБД.
|
|||
|---|---|---|---|
|
#18+
В праздники посмотрел (очень бегло) все 3 (pg,mysql,db2), все встали на убунте, заработали, но толком потестить ниасилил. У постгриса смущает отсутствие выбора визуальной тулзы толковой и бесплатной, нашел тока dgadmin. Симпатичен же "похожестью" на Оракл, маячит перспектива перехода на него, что вроде котируется у работодателей. У db2 не нравится практически полное отсутствие у хостеров, нравится схожестью диалектов с MSSQL, который я немного знаю. Может, кто-то из тех, кто имел опыт работы хотябы с 2 из 3х из из упомянутых СУБД поделится впечатлениями? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2009, 14:44 |
|
||
|
Помогите определиться с выбором СУБД.
|
|||
|---|---|---|---|
|
#18+
Саабразим Аль-каши Бухани, из клиентов стоит посмотреть ems manager LITE for postgreSQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2009, 14:47 |
|
||
|
Помогите определиться с выбором СУБД.
|
|||
|---|---|---|---|
|
#18+
Саабразим Аль-каши Бухани, по возможностям, у постгре более совершенный мультиверсионный механизм, более совершенный язык хранимых процедур, есть возможности подключить разные языки хранимых процедур,система индексов и более мощный планировщик. В транзакциях можно делать почти всё: создавать таблицы, схемы, пользователей. Есть точки сохранения. В отличие от мелко-мягкоко сиквеля есть нормальные последовательности, и временные объекты(таблицы, представления, последовательности). В 8.4 плюс к этому есть табличные выражения, не как в 2005, а с более вменяемым синтаксисом. Рекурсивные запросы тоже есть. Более богатый выбор аналитических функций. Есть массивы и куча разных типов на все случаи жизни+ возможность реализации собственных. У Сиквеля более легко организована репликация, 1С с ней работает быстрее(за счёт убогой реализации блокировок и запросов для постгре). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2009, 15:09 |
|
||
|
Помогите определиться с выбором СУБД.
|
|||
|---|---|---|---|
|
#18+
ОКТОГЕНВ отличие от мелко-мягкоко сиквеля есть ... временные объекты(таблицы, представления, последовательности).Ну уж убавлять-то не надо. Тут рядом топик чуть ли не до 10 страниц разросся как раз про использование времянок в MSSQL.ОКТОГЕНРекурсивные запросы тоже есть.Правильнее сказать: вот только-только появились.ОКТОГЕНВ 8.4 плюс к этому есть табличные выражения, не как в 2005, а с более вменяемым синтаксисом.А чем Вам синтаксис table-valued функций не угодил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2009, 15:51 |
|
||
|
Помогите определиться с выбором СУБД.
|
|||
|---|---|---|---|
|
#18+
Senya_L, временных вьюх в MSSQL я не нашёл, как и последовательностей. Контриб connectby был задолго до WITH RECURSIVE. С ним можно многое. Я имел в виду не табличные функции(которые в постгри тоже есть давно), а WITH(CTE). Они там разве был? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2009, 17:19 |
|
||
|
Помогите определиться с выбором СУБД.
|
|||
|---|---|---|---|
|
#18+
ОКТОГЕНЯ имел в виду не табличные функции(которые в постгри тоже есть давно), а WITH(CTE). Они там разве был? В MS SQL поддержка CTE введена с 2005 версии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2009, 17:40 |
|
||
|
Помогите определиться с выбором СУБД.
|
|||
|---|---|---|---|
|
#18+
ОКТОГЕНSenya_L, временных вьюх в MSSQL я не нашёл, как и последовательностей.SEQUENCES действительно нет. :( А вот про временные вьюхи... Я бы не сказал, что это насущная необходимость. ОКТОГЕНSenya_L, временных вьюх в MSSQL я не нашёл, как и последовательностей. Контриб connectby был задолго до WITH RECURSIVE. С ним можно многое. Я имел в виду не табличные функции(которые в постгри тоже есть давно), а WITH(CTE). Они там разве был?"Они" - это CTE в MSSQL что ли? С 2005 есть и будет есть :). И от стандарта в MSSQL отличие, насколько я знаю, разве что не требуется RECURSIVE указывать. Так чем же синтаксис не нравится - тем более непонятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2009, 17:43 |
|
||
|
Помогите определиться с выбором СУБД.
|
|||
|---|---|---|---|
|
#18+
Senya_L, а можно пример(ссылочку) пользования with без рекурсий? Как отличаются СТЕ от рекурсивных запросов в MSSQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2009, 17:47 |
|
||
|
Помогите определиться с выбором СУБД.
|
|||
|---|---|---|---|
|
#18+
ОКТОГЕНSenya_L, а можно пример(ссылочку) пользования with без рекурсий? Как отличаются СТЕ от рекурсивных запросов в MSSQL?Можно, тынц . Кстати, нерекурсивные CTE-выражения можно приравнять к временным просмотрам, с некоторыми ограничениями, конечно. ЗЫ. Что же Вы критикуете не видев в глаза фичу? ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2009, 17:54 |
|
||
|
|

start [/forum/topic.php?fid=35&fpage=20&tid=1552941]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 238ms |
| total: | 383ms |

| 0 / 0 |
