Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Optymalizacja bazy danych [nie chodzi OPTIMIZE]
Bakus
post
Post #1


Administrator serwera


Grupa: Przyjaciele php.pl
Postów: 909
Pomógł: 0
Dołączył: 12.08.2003
Skąd: /var/www/wroclaw.php

Ostrzeżenie: (0%)
-----


Dla testów przeniosłem logi serwera Apache do MySQLa...
Niestety zaskoczyła mnie jedna rzecz...
Log od 29 marca, g. 02:53 do 31 marca do godziny 23:59 urusł do 42 294 rekordów (6.9 MB)
Log dla kwietnia już liczy ponad 70 tys. rekordów... Jak zrobić by zapytania do bazy danych nie trwały po pare (naście) sec. ?

Przykładowe zapytanie do bazy
[sql:1:627e450951]SELECT `useragent` , count(*) AS count FROM `log_042004` GROUP BY `useragent` ORDER BY count DESC LIMIT 10;[/sql:1:627e450951]

Nie wiedziałem jak inaczej zobrazować strukturę bazy, więc wrzucam wam kod ją tworzący...
[sql:1:627e450951]CREATE TABLE `log_032004` (
`id` int(11) NOT NULL auto_increment,
`d` char(2) default NULL,
`H` char(2) default NULL,
`i` char(2) default NULL,
`s` char(2) default NULL,
`method` char(3) NOT NULL default '',
`url` text NOT NULL,
`query` text NOT NULL,
`referer` text NOT NULL,
`rhip` varchar(15) NOT NULL default '',
`useragent` varchar(255) NOT NULL default '',
`https` char(2) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=42301;[/sql:1:627e450951]

Już zrobiłem, by każdy miesiąc był zapisywany do kolejnej tabeli, ale perspektywa zbierania 11500 kolejnych rekordów statystyk nie rysuje się kolorowo...

Jak zoptymalizować tą bazę i/lub zapytania by to chodziło szybciej (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
DeyV
post
Post #2





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




no ale ja nie widzę problemu.
Przeciez w ten sposób możesz zastosować sie dokładnie do zaleceń podanych przezemnie.
tj.
1. zmiana sposobu zapisu danych
2. dodanie indexów (szczególnie na dacie)
Podział na kilka tabel może być nieco bardziej problematyczny, ale choć też wydaje mi się możliwy.

Więc z czym masz tak naprawdę problem?

A co do strony MySQl.com... tam jest naprawdę swietny manual ( http://dev.mysql.com/doc/mysql/en/index.html ) choć po ostatnich zmianach na ich stronie trzeba nauczyć się do niego dotrzeć (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 19:18