![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 173 Pomógł: 1 Dołączył: 4.05.2010 Ostrzeżenie: (20%) ![]() ![]() |
PHP/MySQL
Witam, Trochę samouk jestem i mam problem. Doszedłem do takiego miejsca gdzie potrzebuję aby w komórce w bazie mieć tabelę. Czyli mamy kilkaset tabel niektóre mają po kilka milionów rekordów a w tych tabelach potrzebuję aby jedna komórka również była tabelą o wielu kolumnach i rekordach w której można robić selekty, update, inserty, delete. Oczywiście można tworzyć setki tysięcy tabel o innych nazwach ale to przecież pliki, a jak będzie ich taka ilość to raczej to nie ruszy, nawet phpmyadmin nie ruszy (IMG:style_emoticons/default/smile.gif) Hmm czy to możliwe w jakiś sposób? A... i do tego najlepiej jak by to się dało jakoś na wielu serwerach uruchomić i następne podłączać (IMG:style_emoticons/default/smile.gif) Ten post edytował www.aukcje.fm 16.12.2016, 13:06:30 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat Czyli mamy kilkaset tabel niektóre mają po kilka milionów rekordów a w tych tabelach potrzebuję aby jedna komórka również była tabelą o wielu kolumnach i rekordach w której można robić selekty, update, inserty, delete. Do czegoś takiego są relacje, masz w obu tabelach pole po którym sobie je laczysz i tyle. Wychodzi praktycznie to czego potrzebujesz. Cytat Oczywiście można tworzyć setki tysięcy tabel o innych nazwach ale to przecież pliki, a jak będzie ich taka ilość to raczej to nie ruszy, nawet phpmyadmin nie ruszy. Wydaje mi sie, ze masz zle zaprojektowana baze, skoro chcesz tworzyc az setki tysiecy tabel ;] |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 173 Pomógł: 1 Dołączył: 4.05.2010 Ostrzeżenie: (20%) ![]() ![]() |
Tabele mają po dziesiątki milionów rekordów, a jest ich kilka tysięcy tabel, to baza bota i wyszukiwarki SEO a relacje nic nie dadzą.
Potrzeba jest umieszczenia w jednym polu całej tabeli w której będzie cała masa aktualnych rankingów. Domen jest wiele milionów, każda ma rankingi archiwalne, wiele danych. Dlatego to nie typowe pytanie i problem. Najlepiej jak by się dało wejść do tabeli X zapytać o rekord Y w kolumnie Z a tam mieć całą tabelę z której by można coś selektować lub updatować lub insertować lub usunąć. Nie wiem czy ktoś mnie zrozumie (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Nadal twierdze, ze masz zle zaprojektowana baze, mowisz, ze relacje nic nie dadza, a wg. mnie ten problem:
Cytat Potrzeba jest umieszczenia w jednym polu całej tabeli relacja rozwiazala by idealnie, w koncu co za roznica czy masz tabele jako "pole" innej tabeli czy dociagniesz sobie ja JOIN'em ? |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
W MySQL nie da się.
Również wydaje mi się że coś z Twoją strukturą jest nie halo. Raczej zainteresowałbym się Elasticsearch-em, choć i tak nie wiemy jakie to dane, jakiego typu, jakie struktury, ile tego dokładnie jest. Ile +/- zajmuje GB ta baza.... |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 173 Pomógł: 1 Dołączył: 4.05.2010 Ostrzeżenie: (20%) ![]() ![]() |
Ale można w rekordzie przechowywać wiele danych.
W jaki sposób najlepiej je przechowywać aby było najszybciej wczytywane? CSV, XML, Serialize, ... ? |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ok. Czyli chcesz sobie zrobić kuku... No cóż... Trzymaj jak Ci się podoba, dla mnie może to być nawet json, string z GZip, base64....
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ewentualnie użyj bazy NoSQL.
Ale i tak twierdze, że w Twoim przypadku relacja będzie najlepszą opcją, nie wiem czemu się tak przed nią bronisz. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
PgSql ma typy danych array i json. Ale z tego co piszą koledzy to jak chcesz robić takie "myki" - odpowiedź jest jedna: źle zaprojektowana baza.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 27.09.2025 - 21:09 |