Jump to content
php.lv forumi

Noslodze


GS_

Recommended Posts

Velviens jautajums, man ir datubaze ar 18 tabulam kuras kopa ir 75.000 ierakstu un viss tas pasakumus kopa sver 4.5mb. Vel uz servera glabajas 2gb dazadu failu kopuma ~30.000 bildes un citi faili.

Planots (es ta ceru) ka ar visiem ierakstiem vienlaicigi stradas loti liels daudzums cilveku.

 

Pieprasijumi DB ir maksimali samazinati ar where, sadaliti lapas utt. un tomer gribetos but drosam ka tas viss ar tadu apjomu nenobruks.

 

Ka var notestet atrdarbibu un kadas butu normas prieks tada apjoma ?

 

Taka si ir pirma lappa un vispar pirma saskarsme ar PHP,Mysql tad nezinu cik liels tas apmers skaitas un cik daudz vinu vajag optimizet lai tas normali funkcionetu.

Un vai nav vajadzigs kads uber servers lai ari pie maximalas optimizacijas tas stradatu, jeb moska vispar jau jasak nauda zimet prieks atseviska servera.

Link to comment
Share on other sites

75.000 ieraksti nav nekas...

30.000 bildes arī nav nekas..

 

Max.performance risinājums i Load Balancing + dedicated serveri... (bildēm savs, db savs klasteris, un web atseviski (tas kas tiek balancēts))

Principā pietiek ar 3 serveriem (HTTP, DB, images)

Link to comment
Share on other sites

1. Normāla datubāzes struktūra

2. Optimāli salikti indeksi

3. Piefīčoti selekti (nekādi SELECT * FROM, pēc iespējas mazāk tabulu FULL skani)

4. Ja iespējams, tad datus atlasīt 1 reizi un pēc tam ņemt no kešatmiņas

5. Pēc iespējas nedarbināt selektus iekš cikla

Link to comment
Share on other sites

Izskatas ka ir ok, vel jautajums cik ir normals pieprasijumu skaits datubazei. Piemeram pirmaja lappa man aiziet 4 pieslegumi uz 4 dazadam tabulam no kuram tiek randoma vilkti ara 20 ieraksti no katras. Cik normali ir kautko tamlidzigu pielietot pie sada apjoma ? Jeb lieka resursu izskerdiba ?

Link to comment
Share on other sites

Uztaisi kešu/trigeri

 

function on_story_update()
{
  do_update_cache_storylist();
}

function do_update_cache_storylist()
{
  sql = ... // kaut vai Random
  while (row)
 {
  $txt .= $row->data;
 }
  file_put_contents('cache/lateststories.txt',$txt);
}

Link to comment
Share on other sites

Uztaisi kešu/trigeri

 

function on_story_update()
{
  do_update_cache_storylist();
}

function do_update_cache_storylist()
{
  sql = ... // kaut vai Random
  while (row)
 {
  $txt .= $row->data;
 }
  file_put_contents('cache/lateststories.txt',$txt);
}

 

a ka pec tam izvilkt laukaa tos datus no ta kesha?

Link to comment
Share on other sites

Kaut kādus operatīvos datus (piemēram, online lietotājus) var glabāt arī MySQL memory tabulā, tb datus varēs iegūt ar parasto selektu, bet tas notiks ātrāk, jo dati glabājās atmiņā, nevis failā. Nevaru komentēt par šī varianta efektivitāti, jo ir jāizvērtē vairāki kritēriji: piekonektēties pie bāzes vajadzēs, ja ir daudz dati, tad aizistīs daudz atmiņu.. Plusi tādi, ka ar selektu ir daudz vieglāk atlasīt datus, nekā no faila kaut ko lasīt un pēc tam filtrēt

Link to comment
Share on other sites

×
×
  • Create New...