sql >> Database >  >> RDS >> Mysql

Enorme PHP-array versus MySQL-database?

De andere antwoorden zijn juist - maar om de verkeerde redenen.

Door de gegevens in een PHP-array te bewaren, is het veel sneller op te halen dan uit een database - zelfs als de gegevensset in het geheugen is opgeslagen. Het probleem is dat in normale PHP-architecturen elk verzoek wordt afgehandeld door een apart proces. Daarom zal elk verzoek dat toegang tot de gegevens nodig heeft, de volledige gegevensset in het geheugen moeten laden. Dit kost tijd. Het punt waarop het duurder wordt om deze bewerking uit te voeren in plaats van items uit een database op te halen, hangt van veel verschillende factoren af ​​- maar als grove vuistregel ligt het in de buurt van 100 records. Er zijn toepassingen waarbij dit model zinvol is, maar ze zijn afhankelijk van zeer kleine gegevensvolumes en een gecontroleerd proces voor het wijzigen / beheren van de gegevens.

Uw volgende probleem is dat u waarschijnlijk enkele transacties tegen de voorraad wilt opnemen - dat betekent het wijzigen van de gegevens - en dat betekent de toegang serialiseren om ervoor te zorgen dat er niet 2 afzonderlijke transacties tegelijkertijd plaatsvinden. Het is onmogelijk om dit in PHP te implementeren (zonder een speciale daemon om te oordelen) zonder deadlocks.

Als je iemand in rekening brengt voor het implementeren van de code, dan zou het verblindend duidelijk moeten zijn dat het een heel, heel slecht idee is om dit in het geheugen te implementeren.



  1. Ik heb een array van gehele getallen, hoe gebruik ik ze allemaal in een mysql-query (in php)?

  2. Zoek kolom die een bepaalde waarde bevat in MySQL

  3. Updatequery's optimaliseren

  4. Is het mogelijk om een ​​apriori-associatieregel in de mysql-instructie uit te voeren?