Какво ще препоръчате за уеб приложение с база данни от милиарди записа?

+7 гласа
387 прегледа
попитан 2016 март 17 в .NET от Nikola (1,150 точки)
Разработвам уеб приложение на .NET с MsMql сървър. Изискванията са, че ще има милиарди записи и аз малко се панирам от това. Най-голямата база, която съм съставял е с няколко стотин хиляди записи и тогава си мислех, че е мега огромна таблицата, но сега разбирам, че това е било слаба ракия тогава.

Първо изобщо може ли MsSql да работи с толкова голяма таблица и какво се прави в такива случаи, то най-вероятно ще е изключително бавно за търсене в тази таблица, колкото и индекси да сложа. Някой има ли опит с подобни ситуации?

5 отговори

+3 гласа
отговорени 2016 март 23 от Krasimir.Nikolov. (1,850 точки)
Не съм запознат с нуждите на приложението ти, но като цяло ако можеш да избегнеш това да имаш милиарди записи в таблица е най-добре. Изключително малко са случаите, когато да се налага да имаш толкова голяма таблица. И все пак ако си в такава ситуация имай следното предид:

- Ако наистина имаш бизнес ситуация, която да изисква толкова голяма база данни, тогава се замисли дали не може да се смени да не е MySql отдолу. Има по-подходящи бази данни за справяне с подобни обеми от данни.

- нормализирането на базата данни в този случай не е най-добрата идея, това което се учи в университета отпада при подобни ситуации

- Прочети за Partitioning и виж дали е приложимо в твоя случай

- премахни всички ненужни индекси на таблиците

Има адски много неща, които трябва да имаш предвид. Дори не мога да ги опиша всичките.

Но на първо място виж дали не си усложняваш живота излишно. Най-вероятно има начин да напишеш бизнес логиката по начин подходящ да не използваш толкова голяма таблица.
коментиран 2016 март 23 от Nikola (1,150 точки)
Благодаря за насоките. Може би наистина не ми е нужно и ще успя да разделя в отделни таблици.
+2 гласа
отговорени 2016 март 24 от hudson (270 точки)
Под милиарди записи в една таблица, най-вероятно имаш в предвид нещо от рода на връзка "много към много". По мое мнение, ако е такъв вид таблица MsSql би се справил, само трябва да се сложи уникален ключ за всяка двойка елементи с цел да не се повтарят.

Като цяло ще е по-добре да разделиш, ако приложението позволява.
+1 глас
отговорени 2016 март 22 от bazooka21 (160 точки)
Здравей!
Хмм. Това ме зачуди.. На кой му трябва приложение с база данни с милиарди записи?

Правил съм и аз , но чак с такова нещо не съм се сблъскал..

Ами ако искаш пробвай с няколко бази данни,  на различни сървъри (ако говорим за уеб приложение), които паралелно да работят (паралелно индексират базите си), и по този начин да повишиш бързодействието и капацитета на приложението..

Това ми идва на ум,  ако е приложимо за тебе , пробвай!

Желая ти успех!
коментиран 2016 март 23 от Nikola (1,150 точки)
Благодаря за отговора.
0 гласа
отговорени 2016 юни 30 от Златин (140 точки)
Можеш да използваш ЗЗЗ сървър.
0 гласа
отговорени 2016 юни 30 от ilinovster (1,850 точки)
Отговорът на въпроса ти е комплексен. При такъв обем от данни, за което малко се съмнявам, ще ти трябва или Microsoft SQL server или Oracle. Съществен факт е и как ще организираш структурата на данните - таблици индекси. Освен заявки към DB каква обработка ще извършваш - съхранени процедури и функции, тригери, събития. На какъв хардуер ще е инсталиран SQL сървъра - процесор, памет, диск. Клиентът каква обработка ще извършва върху данните - дали ще извършва сложни изчисления или обработка на графична информация. Факторите са много, но основен е каква информация ще се съхранява и как ще се обработва. Изхождай първо от тези две правила.

Успех в начинанието.
...