Scenario
Sto lavorando su un'applicazione web che gestisce le transazioni finanziarie e il mio codice dovrà essere riutilizzabile per tutto, dai carrelli dei consumatori alle spedizioni di produttori / distributori. Il progetto utilizza Laravel in un ambiente LAMP abbastanza tipico.
Posso usare le funzioni BCMath di PHP o le query MySQL per gestire le operazioni matematiche, ma l'ORM di Eloquent tende a creare molte query e transazioni db, quindi non sono sicuro di quale sarà il migliore. Dovrò aggiungere addizione, sottrazione, moltiplicazione e divisione con precisione fino all'equivalente di un DECIMAL MySQL (10,4).
Domanda 1: prestazioni
Quale avrà prestazioni migliori per matematica di precisione: query MySQL o BCMath? La risposta dovrebbe includere considerazioni per il sovraccarico della rete. MySQL è in esecuzione su un'istanza standard da 8 GB di Rackspace (RAM da 8 GB, 4 CPU virtuali, 600 Mbps, SSD da 320 GB); il server PHP è in esecuzione su un'istanza standard da 2 GB Rackspace (2 GB ram, 2 vCPU, 240 Mbps, 80 GB SSD). La configurazione del server è adattabile e vi è un'alta probabilità di passare ad Azure o AWS prima o subito dopo il lancio. La ragione principale per cui il server MySQL ha specifiche migliori è che stavamo eseguendo un'analisi dei dati di grandi dimensioni (più server di lavoro, 1 db) l'anno scorso e abbiamo ancora grandi requisiti di archiviazione.
Domanda 2: filosofia
Se uno è migliore dell'altro, ha senso preoccuparsi dell'ottimizzazione durante una fase iniziale di sviluppo (la funzionalità di base è ancora carente), o è meglio usare semplicemente ciò che è conveniente e ottimizzare in seguito?