Prioritní dotazy do databáze

mon

Re:Prioritní dotazy do databáze
« Odpověď #15 kdy: 03. 05. 2018, 00:25:51 »
100ms je celkom dlha doba aj na vacsie tabulky (10m+ riadkov)

Nenapisal si nic na zaklade coho sa da rozhodnut:
- o aku db sa jedna?
- na com to bezi, system, zelezo, disky, siet rychlost, siet odozva, mas tam HA?
- vie ten producent dat pouzivat ine rozhranie ako sql?
- mozes stratit vyprodukovane data?
- kolko je producentov ?
- ako casto sa robi ten listing?

Otazky na ktore si musis sam odpovedat:
- kolko si ochotny investovat peniazi? novy hw, licencie, dodavatel
- kolko si ochotny investovat casu? implementacia, udrzba
- co sa stane ak sa to pokazi?

Mozne riesenia:
- generovat id na tom producentovi dat
- vypnut indexy
- zapnut mvcc
- replikacia
- pouzivat mq - na taketo veci to bolo vymyslene - da sa to aj cez sql implementovat, nebude to najkrajsie ale funguje to ak nemas ine ako sql rozhranie. spominany redis ma podporu pub/sub, ale existuju aj lepsie riesenia
- pouzit asynchronne query - nie najlepsi napad bo mozes prijst o data


harrison314

Re:Prioritní dotazy do databáze
« Odpověď #16 kdy: 03. 05. 2018, 08:20:21 »
100ms je na zapis strasne vela, skontroloval by som indexy a constrainty tabulky.
Mozne rienie je sypat to do tabulky, ktora indexy nema a nasledne to prelievat do tej spravnej (alebo pouzit materializovany pohlad).

Ina moznost ak je to mozne nepouzivat int ID ale GUID-y a generovat ich v aplikacii a udaje posielat do fronty.
Ak to musia byt ID-cka, tak pouzit sekvenciu na ich generovanie, ci rovno HiLo pattern.

Ondro

Re:Prioritní dotazy do databáze
« Odpověď #17 kdy: 03. 05. 2018, 08:52:28 »

"RDB is NOT good if you need to minimize the chance of data loss in case Redis stops working (for example after a power outage)."

Neznám nikoho, kdo by produkční databázový server provozoval bez UPS.
Moze sa pokazit nieco za UPS(zdroj, MB,...), moze sa pokazit samotna UPS,....

Trupik

Re:Prioritní dotazy do databáze
« Odpověď #18 kdy: 18. 05. 2018, 08:58:41 »
Dobré ráno/dopoledne.
Tak jak jsem psal - už za mnou oficiálně přišel šéf že by bylo potřeba... ;D
Nakonec to dopadlo tak, že půjdu cestou nejmenšího odporu - replikaci na druhý server. Vzhledem k tomu že těm nad sebou se stejně nezavděčím a soudruzi v NDR do toho prý chtějí intenzivně kafrat, tak tento úkol s radostí předávám svému kolegovi který umí německy - ať si to vyžere on. 8)
Ale i tak díky za nápady, zase jsem si trošku rozšířil obzory.

Ivan Nový

Re:Prioritní dotazy do databáze
« Odpověď #19 kdy: 18. 05. 2018, 09:15:17 »
100ms je celkom dlha doba aj na vacsie tabulky (10m+ riadkov)

Nenapisal si nic na zaklade coho sa da rozhodnut:
- o aku db sa jedna?
- na com to bezi, system, zelezo, disky, siet rychlost, siet odozva, mas tam HA?
- vie ten producent dat pouzivat ine rozhranie ako sql?
- mozes stratit vyprodukovane data?
- kolko je producentov ?
- ako casto sa robi ten listing?

Otazky na ktore si musis sam odpovedat:
- kolko si ochotny investovat peniazi? novy hw, licencie, dodavatel
- kolko si ochotny investovat casu? implementacia, udrzba
- co sa stane ak sa to pokazi?

Mozne riesenia:
- generovat id na tom producentovi dat
- vypnut indexy
- zapnut mvcc
- replikacia
- pouzivat mq - na taketo veci to bolo vymyslene - da sa to aj cez sql implementovat, nebude to najkrajsie ale funguje to ak nemas ine ako sql rozhranie. spominany redis ma podporu pub/sub, ale existuju aj lepsie riesenia
- pouzit asynchronne query - nie najlepsi napad bo mozes prijst o data

Řešení je jednoduché id jako MD5 celé datové věty a nemusíte na nic čekat, jde-li jen o to ID.