Zoptymalizowanie mysql |
Zoptymalizowanie mysql |
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 |
|
|
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
|
|
|
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.
-------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 24.05.2024 - 19:14 |