Znižovanie dopytov na DB -> Cachovanie

Priestor na prezentáciu Vašich modifikácií a vylepšení

Moderátor: Moderátori

Je to dobré?

Ano
14
31%
Ano
14
31%
Ano
14
31%
Nie
1
2%
Nie
1
2%
Nie
1
2%
 
Celkom hlasov : 45

Poslaťod huli » Str Júl 02, 2008 3:43 pm

Na funkciu dss_rand() ktoru som tu kedysi popisoval som nasiel jednoduchsie riesenie...

## EasyMod 0.3.0 Compatible
##############################################################
## MOD Title: dss_rand no query
## MOD Author: Huli < huli0401@gmail.com >
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################

#
#-----[ OPEN ]------------------------------------------
#
includes/functions.php

#
#-----[ FIND ]------------------------------------------
#
function dss_rand()

#
#-----[ REPLACE WITH ]------------------------------------------
# Nahradíme celú funkciu dss_rand
#
function dss_rand()
{
return substr(mt_rand(1,999999999999), 4, 16);
}

#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
# by Huli < huli0401@gmail.com >


Pre tych co nevedia o co islo tak pisem znova, zbytocna funkcia ktora generuje nahodne cisla a nasledne zapisuje do databazy tymto usetrite 1 sql dopyt na kazdej stranke...
Naposledy upravil huli dňa Str Júl 02, 2008 3:52 pm, celkovo upravené 1
Pred založením novej témy si prezri FAQ pre phpBB2 / FAQ pre phpBB3 a taktiež použi vyhľadávanie, pretože tvoj problém už môže byť vyriešený.

Obrázok
Obrázok užívateľa
huli
Prekladateľ
Prekladateľ
 
Príspevky: 736
Registrovaný: Ned Apr 29, 2007 6:00 pm
Bydlisko: Žilina -> Solinky

Poslaťod huli » Str Júl 02, 2008 3:49 pm

Dalsia dobra vec a hned usetrime na indexe 3 dopyty... ale jedine ak mate na webhostingu cron alebo nejaku webovy script ktory cron nahradi... ide o cachovanie statistik... kolko prispevkov je na fore, kolko tem, kolko uzivatelov, a ktory je najnovsi uzivatel...

Odporucam v dat do cronu funckiu ktora bude mazat nasledovne subory kazdych 5 minut..
cache/cache_usercount.php
cache/cache_newestuser.php
cache/cache_postcount_topiccount.php


subor by mal vyzerat nasledovne
nazov suboru: delete.php
ceska k suboru: / (cize do roota kde je aj config, index, viewtopic atd..)
<?php
unlink('cache/cache_usercount.php');
unlink('cache/cache_newestuser.php');
unlink('cache/cache_postcount_topiccount.php');
?>

v crone vyplnime podla obrazku (ak mate hosting od websupport tak to mate lahsie)
http://image.dayphorum.eu/images/46823914526331.png

a tu je mod (2.7.2008)

## EasyMod 0.3.0 Compatible
##############################################################
## MOD Title: get_db_stat caching
## MOD Author: Huli < huli0401@gmail.com >
##############################################################
## Author notes:
## I add function to cron to delete this file every 5 minutes.
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################

#
#-----[ OPEN ]------------------------------------------
#
includes/functions.php

#
#-----[ FIND ]------------------------------------------
#
function get_db_stat($mode)

#
#-----[ REPLACE WITH ]------------------------------------------
# Nahradíme celú funkciu get_db_stat
#
function get_db_stat($mode)
{
global $db, $phpbb_root_path, $phpEx;

switch( $mode )
{
case 'usercount':
if ( file_exists($phpbb_root_path . 'cache/cache_usercount.'.$phpEx) )
{
include($phpbb_root_path . 'cache/cache_usercount.'.$phpEx);
}
else{
$sql = "SELECT COUNT(user_id) AS total
FROM " . USERS_TABLE . "
WHERE user_id <> " . ANONYMOUS;

if ( !($result = $db->sql_query($sql)) )
{
return false;
}
//$row = $db->sql_fetchrow($result);
$file_data = '<? $row = ' . format_array($db->sql_fetchrow($result)) . '; ?>';
$db->sql_freeresult($result);
$handle = fopen($phpbb_root_path . 'cache/cache_usercount.'.$phpEx, 'w');
@flock($handle, LOCK_EX);
fwrite($handle, $file_data);
@flock($handle, LOCK_UN);
fclose($handle);
include($phpbb_root_path . 'cache/cache_usercount.'.$phpEx);

}
return $row['total'];
break;

case 'newestuser':
if ( file_exists($phpbb_root_path . 'cache/cache_newestuser.' .$phpEx) )
{
include($phpbb_root_path . 'cache/cache_newestuser.' .$phpEx);
}
else{
$sql = "SELECT user_id, username
FROM " . USERS_TABLE . "
WHERE user_id <> " . ANONYMOUS . "
ORDER BY user_id DESC
LIMIT 1";
if ( !($result = $db->sql_query($sql)) )
{
return false;
}
//$row = $db->sql_fetchrow($result);
$file_data = '<? $row = ' . format_array($db->sql_fetchrow($result)) . '; ?>';
$db->sql_freeresult($result);
$handle = fopen($phpbb_root_path . 'cache/cache_newestuser.'.$phpEx, 'w');
@flock($handle, LOCK_EX);
fwrite($handle, $file_data);
@flock($handle, LOCK_UN);
fclose($handle);
include($phpbb_root_path . 'cache/cache_newestuser.'.$phpEx);
}
return $row;
break;

case 'postcount':
if ( file_exists($phpbb_root_path . 'cache/cache_postcount_topiccount.' .$phpEx) )
{
include($phpbb_root_path . 'cache/cache_postcount_topiccount.' .$phpEx);
}
else{
$sql = "SELECT SUM(forum_posts) AS post_total, SUM(forum_topics) AS topic_total
FROM " . FORUMS_TABLE;
if ( !($result = $db->sql_query($sql)) )
{
return false;
}
//$row = $db->sql_fetchrow($result);
$file_data = '<? $row = ' . format_array($db->sql_fetchrow($result)) . '; ?>';
$db->sql_freeresult($result);
$handle = fopen($phpbb_root_path . 'cache/cache_postcount_topiccount.'.$phpEx, 'w');
@flock($handle, LOCK_EX);
fwrite($handle, $file_data);
@flock($handle, LOCK_UN);
fclose($handle);
include($phpbb_root_path . 'cache/cache_postcount_topiccount.'.$phpEx);
}
return $row['post_total'];
break;
case 'topiccount':
if ( file_exists($phpbb_root_path . 'cache/cache_postcount_topiccount.' .$phpEx) )
{
include($phpbb_root_path . 'cache/cache_postcount_topiccount.' .$phpEx);
}
return $row['topic_total'];
break;
}
return false;
}

#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
# by Huli < huli0401@gmail.com >
Naposledy upravil huli dňa Štv Júl 03, 2008 11:35 am, celkovo upravené 1
Pred založením novej témy si prezri FAQ pre phpBB2 / FAQ pre phpBB3 a taktiež použi vyhľadávanie, pretože tvoj problém už môže byť vyriešený.

Obrázok
Obrázok užívateľa
huli
Prekladateľ
Prekladateľ
 
Príspevky: 736
Registrovaný: Ned Apr 29, 2007 6:00 pm
Bydlisko: Žilina -> Solinky

Poslaťod Welwet » Str Júl 02, 2008 11:16 pm

Ak pracuje spravne tak toto moze byt celkom uzitocny cache. Statistky vseobecne dost zatazuju databazu.
Welwet
Administrátor
Administrátor
 
Príspevky: 1059
Registrovaný: Sob Nov 24, 2007 4:13 pm

Poslaťod huli » Štv Júl 03, 2008 10:13 am

Welwet píše:Ak pracuje spravne tak toto moze byt celkom uzitocny cache. Statistky vseobecne dost zatazuju databazu.

Samozrejme ze pracuje ale pridat do cronu aby sa ten cache subor mazal v casovych intervaloch odporucujem najviac 5 minut pre fakt velke fora aj 10....
Pred založením novej témy si prezri FAQ pre phpBB2 / FAQ pre phpBB3 a taktiež použi vyhľadávanie, pretože tvoj problém už môže byť vyriešený.

Obrázok
Obrázok užívateľa
huli
Prekladateľ
Prekladateľ
 
Príspevky: 736
Registrovaný: Ned Apr 29, 2007 6:00 pm
Bydlisko: Žilina -> Solinky

Poslaťod DirtX » Sob Okt 18, 2008 12:01 pm

a ked nenastavim ten cron tak sa neco stane?
DirtX
Pokročilý
Pokročilý
 
Príspevky: 109
Registrovaný: Sob Mar 22, 2008 10:09 am

Poslaťod miso250593 » Sob Okt 18, 2008 2:42 pm

no nebudú sa ti obnovovať tie štatistiky proste to budeš mať stále rovnako to

Užívatelia zaslali celkom 32938 príspevkov.
Je tu 1243 registrovaných užívateľov.
Najnovším registrovaným užívateľom je martin-hc.
- - - - - - - Signature - - - - - - -
Klikni moja osobná stránka
Rozšírenia pre mód extend rank color - farba všade bez zbytočných dotazov
Obrázok
Som 234 člen tohto fóra :D
- - - - - - - Signature - - - - - - -
Obrázok užívateľa
miso250593
Expert
Expert
 
Príspevky: 537
Registrovaný: Pon Máj 07, 2007 6:41 pm

Poslaťod Owen » Sob Okt 18, 2008 6:34 pm

..až dokým nepremažeš cache
Owen
Profesionál
Profesionál
 
Príspevky: 267
Registrovaný: Sob Feb 23, 2008 10:37 pm

Predchádzajúci

Späť na Vaše modifikácie

Kto je on-line

Užívatelia prezerajúci fórum: Žiadny registrovaný užívateľ nie je prítomný a 0 hostia


vladstudio
TOPlist TOPlist

Valid XHTML 1.0 Strict [Valid Atom 1.0]


* Štúrovo ubytovanie *