Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Wolne połączenie z bazą danych MySQL


Rekomendowane odpowiedzi

Opublikowano

Witam,
Nie wiem dlaczego wszystkie zapytania do bazy, a może nawet samo otwieranie połączenia trwa tak długo. :( Mam hosting na neteasy.
Szybciej działa przez http niż przez łączenie się bezpośrednio.

 

Przeczytałem coś o dodaniu skip-name-resolve do pliku konfiguracyjnego mysql. Ale gdzie znaleźć ten plik? :|

giphy.gif

Opublikowano

Albo źle napisane samo zapytanie, albo masz wolne łącze. Bo może nie wiesz czy samo połączenie trwa długo. Wywalił by Ci jakiś wyjątek z time outem gdyby tak było. Więc to chodzi o zapytania.

Osobiście pomagam tylko na PW lub e-mail


-----------------------------------------------------------------


https://github.com/smietanka

Opublikowano

No tak, tylko mam uruchomione na tym samym PC 2 programy, jeden korzysta ze skryptów php do wysyłania zapytań, a drugi bezpośrednio. Ten pierwszy działa bez zarzutów. Gdyby zapytanie było źle sformułowane to chyba w ogóle nie uzyskał bym odpowiedzi? Na localhost wszystko śmigało. :(

giphy.gif

Opublikowano

Czemu sądzisz że nie uzyskałbyś odpowiedzi? Powiedzmy mamy coś takiego:
 

var dict = new Dictionary<int, string>();
// uzupelniamy slownik 
//...

// znajdzmy jakas konkretna wartosc gdzie klucz = 453

// sposob 1 - wolny
for(int i = 0; i<dict.Count();i++)
{
  if(dict[i].Key == 453)
    return dict[i].Value;
}
// sposob 2 - byc może nie szybszy, jednak o wiele czytelniejszy
foreach(var eachRow in dict)
{
  if(earchRow.Key == 453)
    return eachRow.Value;
}

//sposob 3 - szybszy napewno
string result;
if(dict.TryGetValue(453, out result))
  return result;


Każdy sposób jest inaczej napisany ale zwróci to samo. Identyczna sytuacja może być przy zapytaniu sql.

Osobiście pomagam tylko na PW lub e-mail


-----------------------------------------------------------------


https://github.com/smietanka

Opublikowano

Pokaż kod. Skąd mamy wiedzieć dlaczego tak wolno Ci się otwiera połączenie? Może masz ustawiony `Monitor.Enter` na całą funkcję pobierania danych z bazy. Ot sztuka copiego pasty.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...