Checkout pot expirar mentre PHP espera que MySQL llegeixi, bloquegi o escrigui dades. La consulta costosa pot pertànyer a WooCommerce, una extensió o codi executat en crear l’ordre. Augmentar el timeout només allarga l’espera si el treball no millora.
Concilia els pagaments abans de repetir. Un timeout del navegador no demostra que la transacció o escriptura fallessin.
Captura la petició bloquejada
Registra hora, durada, endpoint, ID de comanda si existeix i referència de passarel·la. Relaciona-ho amb logs PHP, servidor i MySQL.
- empremta de consulta, no valors
- durada i files examinades
- espera per lock
- host/fil de base
- plugin o stack que crida
Oculta adreces, correus, sessions i literals SQL.
Activa el slow log amb cura
Utilitza l’eina del hosting durant un període acotat. Tria un llindar que capturi el retard sense generar volum incontrolable.
No activis el general log a la lleugera: exposa valors i consumeix disc. Protegeix els registres, limita la retenció i desactiva el diagnòstic temporal.
Separa execució i espera
Una consulta ben indexada pot esperar darrere d’una transacció llarga. Inspecciona processos, waits InnoDB i deadlocks durant una reproducció.
Importacions, backups o analítica poden retenir locks. Mou-los fora de les hores punta i divideix el treball. No matis fils sense identificar propietari i impacte del rollback.
Anota taula, índex, tipus de lock, transacció bloquejadora i bloquejada. El fitxer del fatal no identifica necessàriament el propietari. Si procedeix d’un importador, redueix el lot i confirma que fa commit; si neix al checkout, busca una API externa abans de tancar l’escriptura.
Analitza el pla
Executa EXPLAIN sobre una consulta equivalent anonimitzada a staging:
EXPLAIN
SELECT order_id
FROM wp_wc_orders
WHERE status = 'wc-processing'
ORDER BY date_created_gmt DESC
LIMIT 20;
Revisa accés, índex, files estimades i ordenació temporal. Prefix i esquema poden variar. No afegeixis un índex per l’exemple; utilitza la consulta real.
Compara el pla amb un volum semblant a producció. Actualitza estadístiques amb procediments suportats i demostra que l’índex redueix files examinades sense perjudicar escriptures.
Comprova HPOS
HPOS redueix la dependència de posts, però extensions antigues poden escanejar wp_postmeta o forçar sincronització.
Revisa l’estat i la compatibilitat. En codi propi utilitza wc_get_orders() i CRUD. Repara accions HPOS fallides abans de canviar l’emmagatzematge, amb còpia i assaig.
Localitza consultes sense límits
Busca WP_Query, get_posts() i wc_get_orders() sense límits al stack. Un hook de checkout no ha de carregar tot l’historial o catàleg.
Consulta només ID o camps necessaris i no desis públicament carretons ni respostes de comanda. Mou correu, CRM i analítica després que ordre, línies, estoc i referència de pagament siguin durables.
En bases replicades, garanteix consistència per a lectures immediates. Una rèplica endarrerida pot fer semblar absent la comanda.
Aplica una reparació acotada
Corregeix consulta, índex, lot, lock o hook demostrat. Fes backup i utilitza manteniment online quan existeixi.
Defineix condicions de reversió: temps de checkout, locks, càrrega i espai. Un índex gran pot necessitar disc extra per construir-se i replicar-se. Evita netejadors genèrics.
Després de desplegar, compara la mateixa empremta de consulta i els percentils de resposta, no només una compra ràpida. Mantén la finestra oberta prou temps per incloure concurrència real. Si empitjoren les escriptures o creix la rèplica, aplica la reversió prevista i conserva les mètriques per revisar el disseny.
Verifica comanda i base
Executa checkouts controlats mentre monitoritzes durada, locks i resposta PHP. Confirma una ordre, un pagament, estoc i correu.
El manteniment recurrent ha de seguir empremtes lentes, creixement i acció programada més antiga. Una fitxa ràpida no prova que la ruta transaccional estigui sana.