Posted by: perpetka | 2008-05-15

SELECT * FROM table

SELECT * FROM table

Wstęp dla nietechnicznych: powyższa konstrukcja to sposób zapytania bazy danych “bazo danych, powiedz przecie, co trzymasz w tabelce table“. Nie, nie musicie czytać tej notki.

Używanie * w select jest jedną z rzeczy, za którą powinno się obcinać programistom paluszki. Po kawałku, żeby lepiej zapamiętali.

Przykład nr 1, daleko nie sięgam, ledwo do wczorajszego wieczoru. Musieliśmy uruchomić na serwerze pewien skrypcik, ale wszystki próby kończyły się radosnym komunikatem, że więcej pamięci serwer już nam nie da i mamy spadać. Po wyczerpaniu rozwiązań administracyjnych z duszą na ramieniu zajrzałam w kod. A tam

SELECT * from tabelka

Wynik miał setki tysięcy wierszy, serwer był słaby, a tabelka miała ponad 20 kolumn, głównie tekstowych, z których używane były 4. Po zamianie na

SELECT col1, col2, col3, col4 from tabelka

okazało się, że poradzimy bez dokupywania pamięci.

Przykład drugi: beztrosko napisany trigger logujący zmiany

INSERT INTO tabelka_logujaca SELECT * FROM zmieniony_wiersz_tabelki_logowanej

Niby w porządku, nie? Do momentu, kiedy programista radośnie nie dodał sobie jednej kolumny w tabelce.

You are C++. You are very popular and open to suggestions.  Many have tried to be like you, but haven't been successful
Which Programming Language are You?

Odpowiedzi

przeczytalem, ale nie zrozumialem :-)

Which Programming Language are You?

eee myślałem, że się wklei… no więc jestem LISP ;-) Kiedyś byłem C, a jeszcze kiedyś Perl.

Boze, brzmi jak instrukcja dla hakera jak najlatwiej zlamac “nasz” system…

Leave a response

Your response:

Kategorie