Czołem mirki, mam bazę mysql postawianą lokalnie. Jedna z tabel ma ~500k rekordów (konkretnie jest to widok). Na moim sprzęcie (i7-860 2.8 GHz, 12GB ram 1600 MHz) pobranie rekordu z samego końca tabeli zajmuje ~12 sekund. Dla klienta zamówiłem już porządny serwer (Dell PowerEdge T110 II), ale wolałbym to rozwiązać programistycznie.

Na pewno pomoże domyślne posortowanie tabeli od końca - co wystarczy na większość przypadków, jednak chciałbym uzyskać jak najlepszy czas dostępu
  • 35
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Przechowywanie bardzo dużej ilości obrazów w bazie danych jako blob (dokładniej to w Cassandrze) - jak bardzo zły jest to pomysł? Chodzi mi o warunki polskie - by lag był jak najmniejszy (inaczej bym zaprzęgnął Amazon S3, a tak to jakąś polską chmurę/VPSy mógłbym wziąć). Obrazy nie będą duże, max 1-2MB, średnio ~200kB.

Z plusów widzę:
- banalnie prosto można zrobić klastry Cassandry, różne datacenters etc.
- brak single point of failure przy paru klastrach,
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@RonPaul: IMHO nie ma problemu, ale!
Czy dane mogą być streamowane czy całość obrazka idzie do pamięci? Bo jeśli to drugie, to przy dużym obciążeniu może wywalić out of memory.
  • Odpowiedz
Czy dane mogą być streamowane czy całość obrazka idzie do pamięci? Bo jeśli to drugie, to przy dużym obciążeniu może wywalić out of memory.


@Ginden: mogą być streamowane AFAIK, ale będę o tym coś więcej czytał, żeby nie było przypału ;)
dzięki.
  • Odpowiedz
Mirki z programowania mam taki problem.

Na kompie w biurze miałem postawioną bazę (nie moja) na, której testowałem program.
Program miałem napisany w C# wykorzystując Entity Data Model.
Problem pojawił się w momencie gdy bazę zainstalowano w miejscu docelowym. Baza niczym nie różni się od tej mojej, na której testowałem program oprócz tego, że ma inną nazwę.

Problem
  • 20
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Ej mirki mam taka sytuacje.
Mam baze danych sql server 100 GB i 14 GB wolnego miejsca.
Zrobiłem sobie na maszynei obok testy co się stanie jak usunę 20 mln rekordów archiwalnych.
Problem w tym, że na samą operacje delete sql server zabrał sobie 15 GB miejsca, boję się że na produkcji ten
manerw się nie uda.
Macie jakies pomysły poza wrzucaniem dodatkowego dysku ?
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Crisu: Kilka pomysłów:
- usuwaj w częściach
- sprawdzaj fragmentację indeksów, mniejsza fragmentacja = mniejsze zużycie dysku.
- usuń indeksy i stwórz je od nowa po usunięciu danych
- zmniejsz poziom recovery do simple
- zwiększ fill factor do 100, jeśli to tabela, gdzie nie robi się raczej DELETE
  • Odpowiedz

Witojcie mireczki, właśnie wróciłem z pracy, jako że jestem poza granicami naszego kraju to jest jeszcze wcześnie :)
właśnie pije piwko ( bo przecież przy piwie lepiej się programuje/uczy :) )
A teraz przechodząc do sedna sprawy,
we wrześniu mam poprawkę z Baz danych,
mianowicie wygląda to tak, że przed egzaminem poprawkowym muszę zaliczyć projekt,
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jak prawidłowo tworzyć bazy z różnymi typami podmiotów?
Powiedzmy, nasza firma zawiera umowy zarówno z innymi firmami, z placówkami publicznymi i osobami fizycznymi.
Oczywiście, mamy tabele Podmioty, Osoby, InstytucjePanstwowe i Firmy.
Jak powinna wyglądać struktura tabeli Podmioty?

#sql #bazydanych
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Ginden: dobre pytanie
natomiast odpowiedź cię rozczaruje
prawidłowy model wyklucza relację podmioty
powiązanie pomiędzy podmiotem a procesem (np transakcją) powinno następować na poziomie
  • Odpowiedz
@cycun: Są dwa rozwiązania - trigger (nie procedura) i widok. Najlepszym moim zdaniem rozwiązaniem byłby widok.

Update można zrobić dla każdego rekordu, ale to będzie niewydajne.
  • Odpowiedz
@bred_one: kiedyś robiłem taki projekt apka w Javie + oracle ale bez żadnego RESTa i tam całe API było za pomocą procedur tak, że apka w ogóle nie miała dostępu do tabel. Często się tam kursory przewijały, ale zwykle do jakiegoś prostego przeformatowania wyniku.
  • Odpowiedz
Mireczki, prośba! Możecie polecić jakieś (w zasadzie jakiekolwiek, bo już nic mi nie działa ( ͡° ʖ̯ ͡°)) narzędzie do zrobienia schematu bazy danych w #postgresql, najlepiej w svg, ale png/jpg/pdf też nie pogardzę. Problem w tym, że mam bazę na serwerze i żadne graficzne, javowe programy nie wchodzą w grę. Najlepiej komenda, która wypluwa pliczek svg, który sobie ściągnę do siebie i pooglądam :D
  • 18
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@gagit: jak masz prostą bazę (bez jakichś rozwiązań typowo postgresowych) to możesz ją zmigrować do MySQL i użyć MySQL Workbench aby wygenerować diagram EER :) Jest także opcja generowania diagramu ze skryptu SQL, możesz spróbować czy pójdzie :)
  • Odpowiedz
@gagit: ale zupełnie nie masz dostępu do tej bazy online? jeśli nie to może na serwerze pg_dump schematu tylko, wrzuć do lokalnej a wtedy hulaj dusza, np. importujesz DbSchema i tam sobie układasz obrazek
  • Odpowiedz
Wczytuję dane z pliku do bazy #sqlite (w #qt). Są to pojedyncze wiersze z czterema wartościami:

insert into transactions values (%1,%2,%3,%4)
ale jest ich bardzo dużo. Jak wstawiałem do bazy #mssql to zajęło to trochę czasu, może z pół godziny, a w tempie w jakim wstawia się do sqlie, to zajmie chyba kilka dni... Plik ten sam, kod realizujący wczytywanie ten sam. Tabela taka sama,
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mirki, poleci ktoś dobrą książkę/stronę www/cokolwiek traktującą o działaniu baz Oracle? Chodzi mi o takie zakulisowe działanie przy wykonywaniu zapytań itd. Jeśli ktoś ma coś podobnego dla MS SQL, to też chętnie przyjmę.

#programowanie #naukaprogramowania #bazydanych
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach