Archive for the ‘bazy danych’ Category

Porównanie wydajności baz danych (MySQL, PostgreSQL)

Po wczorajszych testach, i pamiętnych flame’ach MySQL vs PostgreSQL, postanowiłem sprawdzić jak się mają te 2 bazy do siebie w kwestii prostych zapytań na tabelach z 2 mln wierszy każda (`liczby` i `stringi`), w przypadku indeksowanych kolumn, i nie.

Zapytanie
INDEX
MySQL
PostgreSQL

SELECT COUNT(id) FROM liczby

1 rows fetched (844 ms)
1 rows fetched (719ms)

SELECT id FROM liczby
WHERE liczba = 67
NIE
55 [...]

More »

Wypełnienie tabeli (mysql) losowymi danymi (int vs string)

Chciałem przetestować wydajność indeksowania w MySQL, ale nie miałem dość dużej tabeli z danymi.
Trochę szperania w sieci, i napisałem 2 procedury (można byłoby to zamknąć w jednej):
DROP PROCEDURE IF EXISTS LOSOWO;

CREATE PROCEDURE LOSOWO(OUT wyjscie INT)
BEGIN
SELECT FLOOR(1 + RAND() * 99) INTO wyjscie;
END;

DROP PROCEDURE IF EXISTS WYPELNIJ_INT;

CREATE PROCEDURE WYPELNIJ_INT(IN ilosc INT)
BEGIN
DECLARE i INT;

SET [...]

More »

PostgreSQL 8.4 z systemem replikacji

Na konferencji PGCon zdecydowano, że system replikacji zostanie w końcu zintegrowany z PostgreSQL.
Podstawowa funkcjonalność systemu replikacji zostanie dołączona do wersji 8.4, a już w 8.5 będziemy mogli w pełni cieszyć się replikowaniem bazy (w tej chwili dostępna wersja to 8.3.3).
PostgreSQL od dawna czeka na system replikacji z prawdziwego zdarzenia. Do tej pory użytkownicy musieli sobie [...]

More »

Róźne wizje LIMIT w zapytaniach SQL

Dzisiaj w pracy (używamy Firebird SQL) chciałem zoptymalizować powstałe zapytanie do bazy. Chodziło mi tylko o pierwszy rekord zapytania (odpowiednie warunki w ORDER BY).
Jako, że dużą część życia używałem MySQL/PostgreSQL od razu pomyślałem, że użyję LIMIT z parametrem tak, aby otrzymać tylko jeden rekord w wyniku.
Niestety wyszło, że komenda nieznana Dla potomnych jak [...]

More »

Głupota użytkownika MySQL

A dokładniej moja głupota…
Do tej pory dla pól tabeli oraz samej tabeli collation ustawiałem na utf8_general_ci wierząc, że jeśli nazwa UTF8 General to dla wszystkich znaczków kodowanych w UTF8. I przyznam, że problemów z krzaczkami nie miałem. Ale…
Problem pojawił się w małym projekcie, gdzie pozycje miały być posortowane po mieście. Okazało się, że takie miasta [...]

More »

rand() w SQL

Nie sądziłem do wczoraj, że w SQL-u (dokładniej na pewno w mysql) jest funkcja rand(), która może nam pomóc np. w wyborze losowej reklamy na stronę. Dzięki tej funkcji wybieramy i tak jeden wiersz. Jest to o tyle przydatne, że jeśli stosujemy ActiveRecord tworzy nam się jeden obiekt. A nie 100 obiektów, z których później [...]

More »
Mateusz matipl Kaminski on Facebook