Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zoptymalizowanie mysql
koxu1996
post 11.05.2013, 16:38:03
Post #1





Grupa: Zarejestrowani
Postów: 139
Pomógł: 3
Dołączył: 5.06.2011

Ostrzeżenie: (0%)
-----


Witam. Mam taki dylemat na temat rozkładu tabel w mysql, a mianowcie:
1. Na przykład w komentarzach,logach zapisuje id użytkownika (bo gdybym zapisywał nazwę i ktoś by zmienił to wszystko w bazie trzeba było by poprawiać) i i na stronce żeby wyświetlić nazwe to trzeba za kazdym razem pobierac po id. Czy bardziej optymalne było by zapisywanie nazwy (otrzymywało by się w jednym zapytaniu) przy czym zablokować możliwość zmiany nicku?
2. Jeżeli już nazwa by była pobierana po id, to nie lepiej było by rozdzielić tabele użytkowników na podstawowe informacje oraz drugą w której by były zawarte informacje takie jak profil itd ? Chodzi żeby przy każdym pobieraniu nazwy nie pobierać dużo niepotrzebnych danych.

Co o tym sądzicie?

Ten post edytował koxu1996 11.05.2013, 16:38:22
Go to the top of the page
+Quote Post
jaslanin
post 11.05.2013, 18:30:21
Post #2





Grupa: Zarejestrowani
Postów: 511
Pomógł: 143
Dołączył: 13.03.2010
Skąd: Jasło

Ostrzeżenie: (0%)
-----


1. domyślnie powinno być po id + constraints ( chociaż to też ma negatywny wpływ na wydajność ), ewentualnie jak tak bardzo Ci zależy na wydajności to można w tabelach w których nie ma nazwy dodać osobną kolumne z nazwą która była by kopią tego co jest w profilu ( co prawda wtedy tabela nie jest znormalizowana, ale coś za coś )
2. problemem jest bardziej szybkie znalezienie wiersza, niż to czy wiersz ma mało czy dużo danych, zamiast SELECT * możesz przecież wypisać tylko kolumny których potrzebujesz

Ten post edytował jaslanin 11.05.2013, 18:30:35


--------------------
Good luck and happy PHP'ing
Go to the top of the page
+Quote Post
kipero
post 11.05.2013, 22:29:07
Post #3





Grupa: Zarejestrowani
Postów: 233
Pomógł: 50
Dołączył: 28.10.2006
Skąd: Radom

Ostrzeżenie: (0%)
-----


Poczytaj sobie o łączeniu tabel - słowo klucz: JOIN. Rozdziela się tabele, tak aby w każdej trzymać logicznie identyczne dane i właśnie dzięki złączeniom można wybierać dane z kilku tabel jednocześnie.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.05.2024 - 19:14