sql >> Database >  >> RDS >> Mysql

Livechat met PHP en jQuery. Waar informatie opslaan? Mysql of bestand?

Iedereen heeft een breed scala aan meningen gegeven, maar ik denk niet dat iemand echt de spijker op de kop heeft geslagen.

Als het gaat om het opslaan van gegevens, bepalen de hoeveelheid gegevens, de snelheid waarmee toegang moet worden verkregen en verschillende andere factoren allemaal wat het beste opslagplatform is.

Sommige mensen hebben voorgesteld om memcached te gebruiken. Hoewel dit een geldig antwoord is (u kunt gebruiken), denk ik niet dat dit een goed idee is, alleen gebaseerd op het feit dat memcached gegevens opslaat in het geheugen van je server.

Uw geheugen is niet voor gegevensopslag, het is voor gebruik van de daadwerkelijke applicaties, het besturingssysteem, gedeelde bibliotheken, enz.

Het opslaan van gegevens in het geheugen kan veel problemen veroorzaken met andere toepassingen die momenteel worden uitgevoerd. Als u te veel gegevens in uw RAM opslaat, kunnen uw toepassingen de aan hen toegewezen bewerkingen niet voltooien.

Hoewel dit sneller is dan een schijfgebaseerd opslagplatform zoals MySQL, is het niet zo betrouwbaar.

Persoonlijk zou ik MySQL gebruiken als server-side voor uw storage-engine. Dit zou het aantal problemen dat u tegenkomt verminderen en de gegevens ook zeer beheersbaar maken.

Om de reacties op uw klanten te versnellen, zou ik kijken naar het uitvoeren van node op uw server.

Dit komt omdat het gebeurtenisgestuurd en niet-blokkerend is.

Wat betekent dat?

Welnu, wanneer Client A wat gegevens opvraagt ​​die op de harde schijf zijn opgeslagen, zou PHP traditioneel tegen de C++ zeggen:haal me dit stuk gegevens op dat op deze sector van de harde schijf is opgeslagen. C++ zou zeggen 'ok, geen probleem', en terwijl het uitgaat om de informatie te krijgen, zou PHP wachten tot de gegevens zijn gelezen en geretourneerd voordat het zijn bewerkingen voortzet, blokkerend alle andere klanten in de tussentijd.

Met node is het iets anders. Node zal tegen de kernel zeggen, 'haal me dit stuk informatie op en bel me als je klaar bent', en dan blijft het verzoeken van andere clients aannemen die mogelijk geen schijftoegang nodig hebben.

Dus plotseling, omdat we een callback aan de kernel hebben toegewezen, hoeven we niet te wachten :), happy days.

Kijk eens naar deze afbeelding:

Dit zou echt het antwoord kunnen zijn waarnaar u op zoek bent. Raadpleeg het volgende voor meer beschrijvende en gedetailleerde informatie over hoe node de juiste keuze voor u kan zijn:



  1. Uitzondering verhogen in PL/SQL?

  2. Hoe kan ik deze gebruiken voor het maken of verwijderen van een index in MySQL?

  3. MySQL-limietresultaten per categorie

  4. Kan een tabel meerdere primaire sleutels hebben?