<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - Optymalizacja bazy danych kroko po kroku]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=157&amp;type=atom"/>
	<updated>2009-03-19T13:56:30Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=157</id>
		<entry>
			<title type="html"><![CDATA[Odp: Optymalizacja bazy danych kroko po kroku]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=640#p640"/>
			<content type="html"><![CDATA[Indexy (na przykład):

"muarab_przedmiot_a_id_ekwipunek" btree (id_muarab_ekwipunek, a) <- podobnych undexów jest z 10 sztuk narazie ale docelowo będzie około 18

Bo jest tego dużo, w tym stylu. Odkąd je pozakładałem nie było żadnych indexów. Ucze się dopiero je stawiać.

Odkąd je pododawałem to sporo mi przyspieszył system, na szczęści trafiłem na kogoś kto to potrafił mi wytłumaczyć przy piwku. :)

Konfig sprzętu:
shared_buffers=50000 (ustawiał mi admin na 50k było chyba jakoś innaczej)
effective_cache_size = 1000 (do tej pory było zahaszowane ale od haszowałem)

maszyna : cantos 5.0 
Procesor dwurdzeniowy, 1GB pamięci RAM i dyskami w Raid 0 + 1


Już pozindeksowaniu (przedzindexowaniem jest gdzieś powyżej):
!!!=# explain SELECT sum(waga) FROM muarab_broniereczne WHERE id_muarab_ekwipunek=1 AND a='A';
                                                     QUERY PLAN
--------------------------------------------------------------------------------------------------------------------
 Aggregate  (cost=7.03..7.04 rows=1 width=4)
   ->  Index Scan using muarab_broniereczne_a_id_ekwipunek on muarab_broniereczne  (cost=0.00..7.03 rows=2 width=4)
         Index Cond: ((id_muarab_ekwipunek = 1) AND (a = 'A'::text))
(3 rows)

Może ktoś ma pomysła jak więcej wycisnąc sekund z takiego zapytania :D]]></content>
			<author>
				<name><![CDATA[zbytnik]]></name>
				<email><![CDATA[zbytnik@m67.org]]></email>
				<uri>https://forum.postgresql.org.pl/profile.php?id=425</uri>
			</author>
			<updated>2009-03-19T13:56:30Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=640#p640</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Optymalizacja bazy danych kroko po kroku]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=639#p639"/>
			<content type="html"><![CDATA[Podaj jakie masz indeksy założone dla tej bazy?]]></content>
			<author>
				<name><![CDATA[karlos]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=16</uri>
			</author>
			<updated>2009-03-19T13:14:40Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=639#p639</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Optymalizacja bazy danych kroko po kroku]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=635#p635"/>
			<content type="html"><![CDATA[Config bazy masz jakis ? ;]
shared_buffers = ?
effective_cache_size = ?

Jaka maszyna ... dajesz wszystko co masz :P]]></content>
			<author>
				<name><![CDATA[psocha]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=519</uri>
			</author>
			<updated>2009-03-18T07:23:14Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=635#p635</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Optymalizacja bazy danych kroko po kroku]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=631#p631"/>
			<content type="html"><![CDATA[NO dobra od początku:

Czasy zaczynają wzrastać wraz z ilością użytkowników. Najpierw było 0,9 s(grało się płynnie) potem stopniowo wzrastało do wartości 10 s (muł totalny).

Przez ten czas dopisałem trochę kodu (około 25%) i doszło trochę grafiki. Sprawdziłem, strona bez bazy robi na poziomi 0,6 - 0,7 sek z bazą już 9,0 - 10,0 czyli wniosek: baza danych gdzieś coś przycina.

Znalazłem jedno miejsce odpowiedzialne za około 0,7 - 0,8 s jest to zapytanie proste typu:
SELECT sum(waga) FROM muarab_broniereczne WHERE id_muarab_ekwipunek=1 AND a='A';
Takich zapytań jest około 10 sztuk i tutaj muli na poziomie około 4 sekund

Parametr a to znaczy że przedmiot ma być zliczony do wagi

A tutaj wynik explaina:
!!!!=# explain SELECT sum(waga) FROM muarab_broniereczne WHERE id_muarab_ekwipunek=1 AND a='A';
                                             QUERY PLAN
-----------------------------------------------------------------------------------------------------
 Aggregate  (cost=18.29..18.30 rows=1 width=4)
   ->  Bitmap Heap Scan on muarab_broniereczne  (cost=14.27..18.28 rows=1 width=4)
         Recheck Cond: ((id_muarab_ekwipunek = 1) AND (a = 'A'::text))
         ->  BitmapAnd  (cost=14.27..14.27 rows=1 width=0)
               ->  Bitmap Index Scan on index_id_muarab_ekwipunek  (cost=0.00..2.15 rows=42 width=0)
                     Index Cond: (id_muarab_ekwipunek = 1)
               ->  Bitmap Index Scan on index_a  (cost=0.00..11.88 rows=1679 width=0)
                     Index Cond: (a = 'A'::text)
(8 rows)]]></content>
			<author>
				<name><![CDATA[zbytnik]]></name>
				<email><![CDATA[zbytnik@m67.org]]></email>
				<uri>https://forum.postgresql.org.pl/profile.php?id=425</uri>
			</author>
			<updated>2009-03-17T15:09:37Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=631#p631</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Optymalizacja bazy danych kroko po kroku]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=630#p630"/>
			<content type="html"><![CDATA[Co znaczy schody? Baza muli. Nie wyrabiają select'y, inserty, update'y ? Jak dużo połączeń z baza jest nawiązywanych?]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2009-03-17T14:59:07Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=630#p630</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Optymalizacja bazy danych kroko po kroku]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=628#p628"/>
			<content type="html"><![CDATA[Szukam własnie jak przeprowadzić optymalizację bazy, używam postgresa już od dość dawna ale jak dotąd nie przekroczył on 50K wpisów w jednej tabeli. Mam jednak teraz doczynienia z większą bazż (napisałem grę webową: [url=http://www.muarab.pl]www.muarab.pl[/url]) i się zaczęły schody.

[b]Dlatego mam kilka pytań:[/b]


[b]- Od czego zacząć optymalizację ?[/b]

[b]- Jak i czy warto zrobić indexowanie ?[/b]

[b]- auto vacuum (polecenie vacuum full przyspiesza mi gre) jak to zrobic żeby wrzucić to w  jakiś automat (np: o 4 rano co 7 dni) ??[/b]

[b]- Czy są może jakieś wartości (pamięć, dzielenie itp) które warto sprawdzić i ustawić innaczej niż defaultowo ??[/b]



Oczywiście są to podstawowe pytania będę miał ich więcej. 

Używam tej bazy ale ani z dokumentacji nic nie wyczytałem ciekawego ani na forach.

Potrzebuję przykładów itp. z doświadczenia płynących a nie pustej dyskusji.]]></content>
			<author>
				<name><![CDATA[zbytnik]]></name>
				<email><![CDATA[zbytnik@m67.org]]></email>
				<uri>https://forum.postgresql.org.pl/profile.php?id=425</uri>
			</author>
			<updated>2009-03-17T14:36:33Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=628#p628</id>
		</entry>
</feed>
