Estoy realizando una aplicación con una gran base de datos que tiene un total si no me equivoco de 55 tablas es decir 55 pestañas en un solo archivo y tiene un peso de más 5 mb en Google sheets.
Mis siguientes preguntas son las siguientes:
1. Me equivoqué en poner todo en un solo archivo , será dividirlos?
2. De manera definitiva Google sheets solo funciona en apps pequeñas y no ya con volúmenes grandes de datos?
Vi un video o varios videos donde dice que mysql u otras bases demoran mucho menos donde por ejemplo en escritura o lectura de columnas calculadas donde demoran más de 1 minuto mysql puede demorar 3 o 4 segundos pero increíble!!!
Quiero buscar lo mejor ya que en videos y fotos he visto que aún no tengas bots o columnas calculadas en bases de datos grandes es súper lenta la sincronización.
Que puedo hacer que me recomiendan? Si migro a sql o supabase tendría que hacer desde cero el app o cómo podría migrar la información de mi Google sheets y se acomode ya a las tablas hechas en el app y configuración.
Ejemplos:
1 Se demora hasta 14 segundos en copiar un dato en una columna (Tabla Tareas PR)
Detalles de la escritura en la columna tareas:
Performance General:
Agradezco de antemano todos los consejos!
Buen día.
Efectivamente las bases de datos SQL demoran menos que las tablas de gsheets. Aunque no es tan notorio en muchos casos. Plataformas como MySQL, PostgreSQL, o Supabase son excelentes opciones
Estas bases de datos procesan las operaciones de manera mucho más eficiente, lo que se traduce en una velocidad de escritura y lectura casi instantánea, a diferencia de los 14 segundos que mencionas.
¿Tendrás que rehacer la aplicación? ¡No, no desde cero! Una de las grandes ventajas de AppSheet es que puedes cambiar la fuente de datos y luego reconectar las tablas existentes a la nueva base de datos. Tendrás que reconfigurar las referencias y algunas expresiones, pero la mayor parte de la estructura de tu aplicación (vistas, comportamientos, bots) permanecerá intacta. Mi experiencia fue que el proceso de migración es bastante “indoloro”. Te aconsejo hacerlo tabla a tabla.
La velocidad de acceso depende mucho del plan de hosting que tengas contratado en el proveedor que sea.
No es tan grave la cantidad de tablas, ya que AppSheet en la carga inicial lee las tablas en el background sin entorpecer al usuario, como la cantidad de columnas y filas que tenga cada una.
Te aconsejo limitar la cantidad de filas que lee cada tabla a las imprescindibles, o sea hacer que AppSheet lea exclusivamente los datos que necesita, usando security filters en AppSheet o mejor aún, creando una view dentro de la tabla que ejecute un SQL interno en la base de datos.
2. Optimización si te quedas en Google Sheets (Solución Temporal)
Si la migración no es una opción inmediata, puedes intentar mitigar el problema con estas estrategias:
-
Filtros de Seguridad (Security Filters
): Esta es la recomendación más importante. En lugar de que AppSheet cargue todas las filas de cada tabla, puedes usar filtros de seguridad para limitar los datos que se descargan a las filas que el usuario realmente necesita ver. Por ejemplo, en una tabla de ventas, podrías filtrar para que cada usuario solo vea sus propias ventas. Esto reduce drásticamente el volumen de datos.
-
Vistas Materializadas: Aunque no es una función nativa de Google Sheets, puedes simular una “vista” creando una hoja de cálculo separada con la función QUERY()
de Google Sheets. Sin embargo, esta solución puede ser compleja y no tan eficiente como una base de datos real.
-
Limitar la cantidad de columnas: Revisa si todas las columnas de cada tabla son realmente necesarias en la aplicación. Ocultar o eliminar columnas que no se usan también puede ayudar a reducir la carga de datos.
2 Likes
Primero dividire el archivo según sus prioridades de información de hojas y tablas, después proseguiré con lo que recomiendas, pero la verdad si quiero encaminarme en aprender y aplicar otras bases de datos diferentes a Gsheets por que al final tiene un límite de capacidad en cuanto a su información en base de datos.
Gracias por contestar!
Buen día.