Cita: La consulta es:
Cuando la cantidad de caracteres a manipular por PHP en el recuperado/guardado asicienda a 1.000.000, 10.000.000 o mas. ¿Va a presentar alguna limitación?
Podrias realizar el experimento...
Código PHP:
Ver original<?php
// Aumento la memoria pero igual no me alcanza.
ini_set('memory_limit', '9999999999M'); // Factorizo, porque php no admite enteros tan grandes con mi configuracion actual.
// Serializado y b64.
En mi servidor eso arroja este error:
Cita: Fatal error: Allowed memory size of -1048576 bytes exhausted (tried to allocate 4294901761 bytes)
Eso es porque se me llena la ram de la notebook y no alcanza a definir el string, podrias probarlo en un servidor y guardarlo en mysql a ver que sale, solo que vas a precisar un vps con mas de 4gb de ram.
Por otra parte, dudo que la escalabilidad de php/mysql sea un problema si hay hardware que la respalde, pero considero un error de diseño importante guardar datos serializados en una base de datos.
La base de datos debe poder leer los datos, filtrarlos, organizarlos, etc. Deberias crear las entidades correspondientes y guardar alli los datos del carrito, de esta forma no hay problema con la cantidad de registros que tenga la compra, puedes leerlos 1 a 1 donde haga falta o obtener datos de interes sin problemas, con un consumo de ram minimo.
En volumenes de datos grandes, tu sistema no sera escalable, sera lento y puede que hasta incosistente por un monton de factores, y el problema sera de diseño, no de php o mysql.