![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 453 Pomógł: 16 Dołączył: 25.05.2004 Skąd: Gorzów Wlkp. Ostrzeżenie: (0%) ![]() ![]() |
Dzieńdobry. Zastanawiając się przed chwilą nad wyglądem jednej z tabel w mojej bazie danych doszedłem do wniosku, ze będzie miała ~52 kolumny (wszystkie int(12)). Narodziło się pytanie - czy to ma jakiś wpływ na pracę MySQL? Dla mnie, te 52 kolumny to dużo, nigdy nie używałem tylu. Może lepiej pomyśleć jak rozbić tabelkę na połowę a może nawet trzy części i operować joinami później?
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 341 Pomógł: 40 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
hmmm.
sprawa nie jest prosta. dla zwyczajnego zastosowania - owe 52 kolumny to ani malo, ani duzo. da rade. pamietaj jedynie, by nie wybierac danych za pomoca select * from tylko potrzebne kolumny. jesli potrzebujesz cos maksymalnie szybkiego - to trzeba wiecej zabawy poswiecic przy projektowaniu np kolumny o definiowanej i stałej szerokosci, tzn char zamiast varchar, stosowanie minimalnych wielkosci dla rozmiarow pol np smallint zamiast int, a juz w zadnym razie bigint.. odpowiednio zakladane indexy.. itp. no, ale to juz osobna zabawa, i bardzo zalezy od tego, gdzie potrzebujesz wydajnosci. czy przy zapisie - czy tez przy odczycie (kwestia odpowiedniego zastosowania indexow) tak naprawde, kazdy projekt jest inny. sa ogolne zasady, ktorymi trzeba sie kierowac przy projektowaniu (normalizacja itp) ale to tak naprawde wszystko zalezy od projektu zdazalo mi sie swiadomie lamac zasady normalizacji danych, spowodowac ze czas insertu dla danej tabeli bylby nie do przyjecia na dyzych serwisach - ale udalo mi sie dzieki temu uzyskac zadawalajace wyniki dla zapytan.. srednia odpowiedz api to ok 0.02 sec (przy kilku milionowych tabelach + filtrowanie danych) insert/update tutaj byl bez znaczenia. j. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 02:58 |