sql >> Databáze >  >> RDS >> Mysql

Živý chat s PHP a jQuery. Kam ukládat informace? Mysql nebo soubor?

Každý vyjádřil širokou škálu názorů, ale nemyslím si, že by někdo trefil hřebíček na hlavičku.

Pokud jde o ukládání dat, o tom, která platforma pro ukládání je nejlepší, rozhoduje množství dat, rychlost, ke které mají být přistupována, a několik dalších faktorů.

Někteří lidé navrhli používat memcached. Nyní, ačkoli je toto platná odpověď (můžete use it), nemyslím si, že je to dobrý nápad, pouze na základě skutečnosti, že memcached ukládá data do paměti vašeho serveru.

Vaše paměť neslouží k ukládání dat, slouží k použití skutečných aplikací, operačního systému, sdílených knihoven atd.

Ukládání dat do paměti může způsobit mnoho problémů s jinými aktuálně spuštěnými aplikacemi. Pokud do paměti RAM uložíte příliš mnoho dat, vaše aplikace nebudou schopny dokončit operace, které jim byly přiděleny.

Ačkoli je to rychlejší než disková úložná platforma, jako je MySQL, není tak spolehlivá.

Osobně bych použil MySQL jako server na straně úložiště úložiště. Tím by se snížilo množství problémů, na které byste narazili, a data by byla také velmi snadno spravovatelná.

Pro urychlení odpovědí vašim klientům bych se podíval na spuštění node na vašem serveru.

Je to proto, že je řízen událostmi a není blokován.

Co to znamená?

Když klient A požaduje nějaká data, která jsou uložena na pevném disku, může PHP tradičně říci C++, přines mi tento kus dat uložený v tomto sektoru pevného disku. C++ by řeklo „ok, žádný problém“, a zatímco by PHP získalo informace, sedělo a čekalo, až budou data načtena a vrácena, než bude pokračovat ve svých operacích, zablokuje mezitím všichni ostatní klienti.

U node je to trochu jiné. Uzel řekne jádru:'vyzvedni mi tento kus informací, a až budeš hotový, zavolej', a pak bude dál přijímat požadavky od ostatních klientů, kteří nemusí potřebovat přístup k disku.

Takže najednou, protože jsme jádru přiřadili zpětné volání, nemusíme čekat :), šťastné dny.

Podívejte se na tento obrázek:

Toto by skutečně mohla být odpověď, kterou hledáte. Pro více popisných a podrobnějších informací o tom, jak by pro vás mohl být uzel tou správnou volbou, se prosím podívejte na následující:



  1. 4 způsoby, jak zabránit přetížení výstrah pomocí monitorování serveru SQL

  2. Jak uložit neomezený počet znaků v Oracle 11g?

  3. V MySQL nelze uložit znaky UTF8

  4. Paralelní transakce v mysql