konto usunięte

Temat: baza mysql: 2 tabele = wydajniej ?

witam

mam takie pytanie
załóżmy że mam tabelę X z danymi [serwis na mysql]. Tabela liczy około 50 tys rekordów.
chciałbym wprowadzić do do serwisu nowy "rodzaj" danych. specyfika danych jest różna

I mam 2 opcje do wyboru:
1. Stworzyć tabelę Y o podobnej strukturze jak X
2. dodać do tabeli X np pole kategoria i w ten sposób rozróżniać te dane

czy przy tej ilości rekordów będzie duża różnica w wydajności między [odpowiednio:]
Ad.1. SELECT * FROM Y
Ad.2. SELECT * FROM X WHERE kategoria='jakas_kategoria'
Adrian Z.

Adrian Z. IT Project Manager &
PHP Programmer

Temat: baza mysql: 2 tabele = wydajniej ?

a może tabela Y :
| Y_id | X_id | Z_kategoria |
zyskujesz przez to elastyczność posiadania przez X_id kilku kategorii , nie zmieniasz struktury X , możesz dowolnie edytować kategorie w ZAdrian Zdziechowicz edytował(a) ten post dnia 19.03.08 o godzinie 20:09
Stanisław P.

Stanisław P. Software designer

Temat: baza mysql: 2 tabele = wydajniej ?

Jak dla mnie stworzenie 'Y', to typ "premature optimization".
Różnica wydajności będzie raczej żadna, o ile nie lepsza dla samego 'X' (jeśli zrobisz indeks dla kategoria+inna_kolumna_indeksowana, bo będzie mógł użyć jednego indeksu, a nie 2 oddzielnych). No i 50tys. rekordów, to nie jest dużo - powiedziałbym nawet, że to mało jeśli chodzi o bazy danych.

konto usunięte

Temat: baza mysql: 2 tabele = wydajniej ?

hmm, w tym wypadku nie mam się co martwić o elastyczność bo jeden wiersz zawsze będzie miał jedną kategorię. tu chodzi mi wyłącznie o wydajność

a jeśli dojdą jeszcze JOIN'y, to czy to też nie zrobi różnicyPaweł Ryznar edytował(a) ten post dnia 19.03.08 o godzinie 20:17
Stanisław P.

Stanisław P. Software designer

Temat: baza mysql: 2 tabele = wydajniej ?

W związku z tym, że nie mamy pojęcia o strukturze, treści, ani zapytaniach jakie masz w bazie, więc najlepiej jak sobie sam odpowiesz na to pytanie.
Zrób takie tabele dodaj indeksy, a potem pobaw się "EXPLAIN SELECT ..." - co ma najmniejszą liczbę analizowanych wierszy - wygrywa.

konto usunięte

Temat: baza mysql: 2 tabele = wydajniej ?

okej :) dzięki za wskazówkę
Michał Stachura

Michał Stachura Dedykowane serwisy i
strony www -
http://santri.eu

Temat: baza mysql: 2 tabele = wydajniej ?

a ja zapytam jeszcze ile waży ta baza.

Wiecie kiedyś widziałem dyskusje na temat czy warto obrazki ładować do bazy czy moze lepiej trzymać je na dysku a w bazie tylko adresy grafik. Jeśli w tym przypadku też mamy taką 'bazkę' to pytanie Pawła o elastyczność i wydajność staje się bardzo istotne :)

konto usunięte

Temat: baza mysql: 2 tabele = wydajniej ?

w sumie nie wiem, nie mam to niej dostępu, ja pracuję na lokalnej, ale baza zawiera tylko tekst

zresztą to już nie ważne, zostaję przy samej tabeli X

konto usunięte

Temat: baza mysql: 2 tabele = wydajniej ?

W tego typu problemach są trzy rozwiązania:
- dwie tabele, każda ma komplet kolumn
- jedna tabela z polem "kategoria" i opcjonalnymi polami
- jedna tabela z częścią wspólną i dwie dodatkowe - z unikalnymi kolumnami

Wszystko zależy od rozkładu danych i charakteru wykonywanych na bazie operacji.

Kilka artykułów na ten temat:
http://www.objectmatter.com/vbsf/docs/maptool/superset...
http://www.agiledata.org/essays/mappingObjects.htmlPiotr Likus edytował(a) ten post dnia 20.03.08 o godzinie 13:23

Następna dyskusja:

SES Phpmailer z baza mysql




Wyślij zaproszenie do