🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.bazy-danych
Article #194934

Re: Relacja wielu do wielu w mySQL/MariaDB

#194934
From: M.M.
Date: Tue, 03 May 2016 11:14
35 lines
2831 bytes
On Tuesday, May 3, 2016 at 12:24:48 PM UTC+2, Borneq wrote:
> Przepraszam, może pytanie banalne.
> Ale mam bazę mySQL albo mariaDB. W niej mam gromadzić transakcje z 
> bloków Bitcoina. Przy czym jeden blok ma wiele transakcji - tabela 
> transakcje. Ale jedna transakcja może mieć wiele adresów wejściowych i 
> wyjściowych. Adresy mogą się powtarzać dla wielu transakcji.
> Kłopot że to relacyjna baza danych a nie np. obiektowa.
> Trzeba zrobić chyba tak, że w tabeli transakcje trzymać tylko hasze 
> transakcji, a pozostałe dwie tabele to będą pary (hasz,adres) jako 
> klucz. (jak zrobić parę jako jeden klucz?)

Pierwsza sprawa: Poczytaj, jest opisane jak się takie klucze i indeksy
definiuje.

Po drugie, osobiście polecam zawsze zdefiniowanie klucza bigint 
jako klucza głównego w każdej tabeli, nawet jeśli istnieje 'naturalny
klucz' typu pesel, albo Twój hash.


> ale wtedy jak będzie wyglądało przeglądanie tabeli transakcje, może 
> spowolnić gdy będę dla każdej wartości wyszukiwał adresy z relacji. 
> Potrzebne indeksy (jakie?), 
Sprawdź btree lub hash i wybierz szybszy. Gdy użyjesz biginta jako
klucza, to baza może sama wygenerować indeksy.


> jak to wszystko ułożyć aby działało szybko?
> A może dla małej ilości adresów, np. 3 trzymać je w tabeli transakcji, 
> tylko dla większej korzystać z relacji?
Szybko... nie rozumiem wszystkich szczegółów. Możesz wkleić Twój bieżący
projekt tabel i zapytanie które wolno działa lub obawiasz się że
będzie wolno działało?


Pozdrawiam
Technical Details
Message-ID: <d9c69035-f012-4347-89b3-4fb0df96ee3c@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.man.lodz.pl!newsfeed.pionier.net.pl!feeder.erje.net!2.us.feeder.erje.net!news.glorb.com!11no1118897qgt.0!news-out.google.com!c13ni7356qge.1!nntp.google.com!88no1118584qga.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
References: <ng9u9e$j6l$1@node1.news.atman.pl>

Show Full Headers
Complete Article Headers
X-Received: by 10.129.145.81 with SMTP id i78mr1039665ywg.8.1462274042401;        Tue, 03 May 2016 04:14:02 -0700 (PDT)
X-Received: by 10.140.100.142 with SMTP id s14mr34343qge.3.1462274042374; Tue, 03 May 2016 04:14:02 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.man.lodz.pl!newsfeed.pionier.net.pl!feeder.erje.net!2.us.feeder.erje.net!news.glorb.com!11no1118897qgt.0!news-out.google.com!c13ni7356qge.1!nntp.google.com!88no1118584qga.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.bazy-danych
Date: Tue, 3 May 2016 04:14:02 -0700 (PDT)
In-Reply-To: <ng9u9e$j6l$1@node1.news.atman.pl>
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=178.37.232.66; posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
NNTP-Posting-Host: 178.37.232.66
References: <ng9u9e$j6l$1@node1.news.atman.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d9c69035-f012-4347-89b3-4fb0df96ee3c@googlegroups.com>
Subject: Re: Relacja wielu do wielu w mySQL/MariaDB
From: "M.M." <mmarszik@gmail.com>
Injection-Date: Tue, 03 May 2016 11:14:02 +0000
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit