Sorry zapomniałem o podaniu źródła danych.
Zaraz się tym zajmę.
<edit
edit>
Dobra dodałem źródła danych i zmodyfikowałem trochę kod.
Teraz żeby to u was działało musicie dodać tabelę config zapełnić ją danymi zamieszczonymi poniżej zapisać plik config.inc.php i w obiekcie klasy PDO przekazać parametry połączenia z bazą danych.
Mam nadzieję że chociaż jednej osobie będzie chciało się to zrobić

<edit
Wykonanie poniższego kodu wskazuje, że operacje na bazie danych, są szybsze od operacji na plikach.
Mówiąc najprościej jestem w szoku. Testowałem to na swoim komputerze, gdzie baza znajduje się na tym samym kompie co serwer www. Wiem też że testy mogą być niepoprawne ze względu na to że na serwerach www najczęściej stosowane są inne systemy plików, a i bazy danych znajdują się na innych komputerach.
Mógłby ktoś poniższy kod wykonać w swoim środowisku ? Najbardziej ciekawi mnie wynik na linuksie z systemem plików Reiser 4 bądź FS. Pod kodem zamieszczam wyniki swoich testów, wykonanych w środowisku WindowsXP na systemie plików NTFS.
<?php function db() { $start = getmicrotime(); $content = '<table width="90%" border="1">'."n"; $content .= '<tr><td colspan="3">Baza Danych</td></tr>'."n"; $content .= '<tr><td>Nazwa zmiennej</td><td>Wartosci</td><td>Identyfikator opisu</td></tr>'."n"; $db = PDO(ustawienia pdo); $result = $db->query('SELECT * FROM config'); while($cfg = $result->fetch(PDO::FETCH_ASSOC)) { $content .= '<tr><td>'.$cfg['c_name'].'</td><td>'.$cfg['c_val'].'</td><td>'.$cfg['l_id'].'</td></tr>'."n"; } $content .= '</table>'."n"; $end = getmicrotime(); return $end - $start; } function plik() { $start = getmicrotime(); include('config.inc.php'); $content = '<table width="90%" border="1">'."n"; $content .= '<tr><td colspan="3">Plik</td></tr>'."n"; $content .= '<tr><td>Nazwa zmiennej</td><td>Wartosci</td><td>Identyfikator opisu</td></tr>'."n"; foreach($cfg as $key => $val) { $content .= '<tr><td>'.$key.'</td><td>'.$val['val'].'</td><td>'.$val['desc'].'</td></tr>'."n"; } $content .= '</table>'."n"; $end = getmicrotime(); return $end - $start; } for($i=0; $i<5; $i++) { } ?>
Źródło danych.
Baza plik config:
INSERT INTO `config`(`c_id`,`c_name`,`c_val`,`l_id`) VALUES (1,'page_starting_url','url_news',NULL); INSERT INTO `config`(`c_id`,`c_name`,`c_val`,`l_id`) VALUES (2,'page_languages','pl,en,de',NULL); INSERT INTO `config`(`c_id`,`c_name`,`c_val`,`l_id`) VALUES (3,'company_name','NazwaFirmy',NULL); INSERT INTO `config`(`c_id`,`c_name`,`c_val`,`l_id`) VALUES (4,'title_company_name_display','2',NULL); INSERT INTO `config`(`c_id`,`c_name`,`c_val`,`l_id`) VALUES (5,'art_allow_comments','1',NULL); INSERT INTO `config`(`c_id`,`c_name`,`c_val`,`l_id`) VALUES (6,'art_date_format','H:i d.m',NULL); INSERT INTO `config`(`c_id`,`c_name`,`c_val`,`l_id`) VALUES (7,'art_display_author','1',NULL); INSERT INTO `config`(`c_id`,`c_name`,`c_val`,`l_id`) VALUES (8,'art_display_date','1',NULL); INSERT INTO `config`(`c_id`,`c_name`,`c_val`,`l_id`) VALUES (9,'art_display_images','1',NULL); INSERT INTO `config`(`c_id`,`c_name`,`c_val`,`l_id`) VALUES (10,'art_display_navbar','3',NULL); INSERT INTO `config`(`c_id`,`c_name`,`c_val`,`l_id`) VALUES (11,'art_display_title','1',NULL); INSERT INTO `config`(`c_id`,`c_name`,`c_val`,`l_id`) VALUES (12,'art_per_page','5',NULL); INSERT INTO `config`(`c_id`,`c_name`,`c_val`,`l_id`) VALUES (13,'news_allow_comments','1',NULL); INSERT INTO `config`(`c_id`,`c_name`,`c_val`,`l_id`) VALUES (14,'news_date_format','H:i d.m',NULL); INSERT INTO `config`(`c_id`,`c_name`,`c_val`,`l_id`) VALUES (15,'news_display_author','1',NULL); INSERT INTO `config`(`c_id`,`c_name`,`c_val`,`l_id`) VALUES (16,'news_display_date','1',NULL); INSERT INTO `config`(`c_id`,`c_name`,`c_val`,`l_id`) VALUES (17,'news_display_navbar','3',NULL); INSERT INTO `config`(`c_id`,`c_name`,`c_val`,`l_id`) VALUES (18,'news_display_title','1',NULL); INSERT INTO `config`(`c_id`,`c_name`,`c_val`,`l_id`) VALUES (19,'news_per_page','5',NULL); INSERT INTO `config`(`c_id`,`c_name`,`c_val`,`l_id`) VALUES (20,'page_default_language','en',NULL); INSERT INTO `config`(`c_id`,`c_name`,`c_val`,`l_id`) VALUES (21,'page_url_extension','.html',NULL); INSERT INTO `config`(`c_id`,`c_name`,`c_val`,`l_id`) VALUES (22,'news_count_comments','1',NULL); INSERT INTO `config`(`c_id`,`c_name`,`c_val`,`l_id`) VALUES (23,'news_maxlen_title','40',NULL); INSERT INTO `config`(`c_id`,`c_name`,`c_val`,`l_id`) VALUES (24,'title_glue','>',NULL);
Plik config.inc.php:
<?php $cfg['page_starting_url']['val'] = 'url_news'; $cfg['page_starting_url']['desc'] = 0; $cfg['page_languages']['val'] = 'pl,en,de'; $cfg['page_languages']['desc'] = 1; $cfg['company_name']['val'] = 'Nazwa Firmy'; $cfg['company_name']['desc'] = 2; $cfg['title_company_name_display']['val'] = 2; $cfg['title_company_name_display']['desc'] = 3; $cfg['art_allow_comments']['val'] = 1; $cfg['art_allow_comments']['desc'] = 4; $cfg['art_date_format']['val'] = 'H:i d.m'; $cfg['art_date_format']['desc'] = 5; $cfg['art_display_author']['val'] = 1; $cfg['art_display_author']['desc'] = 6; $cfg['art_display_date']['val'] = 1; $cfg['art_display_date']['desc'] = 7; $cfg['art_display_images']['val'] = 1; $cfg['art_display_images']['desc'] = 8; $cfg['art_display_navbar']['val'] = 3; $cfg['art_display_navbar']['desc'] = 9; $cfg['art_display_title']['val'] = 1; $cfg['art_display_title']['desc'] = 10; $cfg['art_per_page']['val'] = 5; $cfg['art_per_page']['desc'] = 11; $cfg['news_allow_comments']['val'] = 1; $cfg['news_allow_comments']['desc'] = 12; $cfg['news_date_format']['val'] = 'H:i d.m'; $cfg['news_date_format']['desc'] = 13; $cfg['news_display_author']['val'] = 1; $cfg['news_display_author']['desc'] = 14; $cfg['news_display_date']['val'] = 1; $cfg['news_display_date']['desc'] = 15; $cfg['news_display_navbar']['val'] = 3; $cfg['news_display_navbar']['desc'] = 16; $cfg['news_display_title']['val'] = 1; $cfg['news_display_title']['desc'] = 17; $cfg['news_per_page']['val'] = 5; $cfg['news_per_page']['desc'] = 18; $cfg['page_default_language']['val'] = 'en'; $cfg['page_default_language']['desc'] = 19; $cfg['page_url_extension']['val'] = '.html'; $cfg['page_url_extension']['desc'] = 20; $cfg['news_count_comments']['val'] = 1; $cfg['news_count_comments']['desc'] = 21; $cfg['news_maxlen_title']['val'] = 40; $cfg['news_maxlen_title']['desc'] = 22; $cfg['title_glue']['val'] = '>'; $cfg['title_glue']['desc'] = 23; ?>
Plik: 0.00150399208069
Baza: 0.000555562973022
Plik: 0.000808954238892
Baza: 0.000566864013672
Plik: 0.00078444480896
Baza: 0.000542831420898
Plik: 0.000677633285522
Baza: 0.000592088699341
Plik: 0.000688982009888
Baza: 0.000491285324097