Jak powinien wyglądać poprawny update bazy?

0

witam czy mógłby mi ktoś tutaj podać poprawny update do bazy? ponieważ robie według tego – https://www.w3schools.com/php/php_mysql_update.asp – ale sa lagi przy ciągłym updatowaniu co 1 sekundę. Funkcje uzywam w ten sposób:

if($xxxx){
cin();
}

request php idzie co sekundę i po pingu widać ze jest bardzo duży

0

Czas updatu zależy od bardzo wielu czynników:

  • połączenie sieciowe
  • baza lokalna/zdalna
  • typ tabeli (w MySQL to ENGINE - najszybciej zrobi na Memory)
  • wielkości tabeli
  • ilosci updatowych pól
  • czy pola updatowane są w indeksach
  • czy we where są pola z indeksów
  • itp, itd. (nie chce mi się dalej wymyślać)

Musisz co sekundę wykonywać update?

0

Za mało informacji. Nie wiemy jaka baza, jaki rozmiar, jaki serwer, jak używasz dokładnie kodu, jak wywołujesz update etc.Nikt tutaj Ci nie wywróży nic.

0

sekunda i masz lagi? przecież jeśli nie masz tam wielkich struktur danych to to są milisekundy.

0
Marcin.Miga napisał(a):

Czas updatu zależy od bardzo wielu czynników:

  • połączenie sieciowe
  • baza lokalna/zdalna
  • typ tabeli (w MySQL to ENGINE - najszybciej zrobi na Memory)
  • wielkości tabeli
  • ilosci updatowych pól
  • czy pola updatowane są w indeksach
  • czy we where są pola z indeksów
  • itp, itd. (nie chce mi się dalej wymyślać)

Musisz co sekundę wykonywać update?
tak.

hapertown napisał(a):

Za mało informacji. Nie wiemy jaka baza, jaki rozmiar, jaki serwer, jak używasz dokładnie kodu, jak wywołujesz update etc.Nikt tutaj Ci nie wywróży nic.

mr_jaro napisał(a):

sekunda i masz lagi? przecież jeśli nie masz tam wielkich struktur danych to to są milisekundy.

tak, ping rośnie z 20ms do 150-500ms

używam PDO/apache/xampp

funkcja wyglada następująco.

function SetPlayerAfk() {
include('pdo-connect.php');

	$player = $Connect_Web->prepare('SELECT * FROM players WHERE account_id = :accountid and id = :id LIMIT 1');
	$player->bindValue(':accountid', $_SESSION['logged'], PDO::PARAM_INT);
	$player->bindValue(':id', $_COOKIE['ii_id'], PDO::PARAM_INT);
	$player->execute();

	foreach($player as $getplayer){
		$afk = ("UPDATE players SET afk = ".time()." WHERE id = '".$getplayer['id']."' LIMIT 1 ");
		
		    // Prepare statement
    $player_afk = $Connect_Web->prepare($afk);

    // execute the query
    $player_afk->execute();
	$player_afk->closeCursor();
	
	}
	$player->closeCursor();
	$player_afk->closeCursor();
	$Connect_Web = null;
}


potem używam tego tak

if($_Request['cin']){
SetPlayerAfk();
}

javascript wykonuje plik php co 1 sekundę tym samym tworzy się ping bardzo wysoki.
0

lokalnie zawsze przymula tym bardziej na xampie

1 użytkowników online, w tym zalogowanych: 0, gości: 1