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) |
|
|
|
![]() |
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) |
|
|
|
Bakus Optymalizacja bazy danych [nie chodzi OPTIMIZE] 11.04.2004, 01:54:39
Dravo tworzenie indexow dla najbardziej uzywanych koloum... 11.04.2004, 08:37:18
DeyV 1. dlaczego data w 4 polach, zamiast w 1? Pola dat... 11.04.2004, 08:42:49
Bakus Pomysł z kolejnymi tabelami przyszedł po zobaczeni... 11.04.2004, 15:34:47 ![]() ![]() |
|
Aktualny czas: 23.12.2025 - 19:18 |