¿Qué tipo de base de datos debo construir para almacenar datos de redes sociales para una aplicación de Android con una base de usuarios objetivo de 1,000,000?

En primer lugar, le sugiero que almacene la menor cantidad posible de datos en el lado del cliente (la aplicación de Android). Si el usuario siente que la aplicación usa más memoria, puede optar por desinstalarla, por lo que debe almacenar la mayoría de los datos en el servidor y muy poca porción de datos requerida en la aplicación de los usuarios finales.

La opción número uno que te sugiero es Realm: crea aplicaciones móviles reactivas en una fracción del tiempo. Es realmente rápido y está diseñado para manejar millones de entidades de datos en solo unos pocos microsegundos. Las principales compañías como Google también lo usan. La base de datos del reino se usa en miles de millones de dispositivos móviles, por lo que puede ver la popularidad de la misma. Cuando tiene el reino, no necesita buscar otras opciones de base de datos. La mejor parte de Realm es su base de datos Object y podemos guardar el esquema en formato de clase y puede tener datos almacenados como objeto de esa clase. Se vuelve fácil llenar su vista de lista / vista de reciclador ya que puede pasar directamente ArrayList (o RealmList) de objetos de reino. Incluso tienen su propia versión de la vista de reciclaje, aquí no tiene que notificar cuando cambian los datos, los cambios se reflejan automáticamente en la interfaz de usuario cuando se realizan cambios en los objetos del reino. Realm está disponible en Java, JavaScript (para reaccionar nativo) e incluso Objective C para iOS (en caso de que comience a desarrollar aplicaciones para iPhone). Con Realm Mobile Platform puedes sincronizar tus datos móviles con el servidor, se llama sincronización sin conexión . Esto es útil cuando desea tener una copia de seguridad de sus datos del lado del cliente. Incluso puede tener escuchas que le notificarán cuando cambie el valor de un objeto para que pueda modificar su IU en consecuencia. Sin embargo, también hay algunas desventajas. Debe cambiar el código de migración si cambia su esquema, existe la posibilidad de que pierda los datos si comete un error al escribir el código de migración. Debe tener más cuidado con las excepciones de puntero nulo.

Otra opción es SnappyDB, que es utilizada por Uber, hay un artículo medio que compara Realm con SnappyDB.

“Punto de referencia de la base de datos: Reino vs. SnappyDB “Base de datos de referencia: Realm vs. SnappyDB – Hesam – Medio

A2A.

Lo que quieras. Cierra los ojos y elige.

No SQL tal vez?

El único desafío es que puede que tenga que elegir una base de datos comercial. Las cosas gratis pueden no ser capaces de manejar.

No se trata del tipo de base de datos. Es cómo acceder a la información almacenada en esa base de datos. Con 10K usuarios, necesitará una programación de servidor de primer nivel para gestionar las miles de conexiones y solicitudes de servidor.

Cuando llegues a 100K, necesitarás mejorar aún más. 1 molino? Ya sabes que hacer.

Servidor (es) web

¿Hará un escritorio barato? Con tanto tráfico, estará enviando ~ 15–20Mb / minuto.

¿Cómo va a almacenar estos datos? ¿En discos duros? Son baratos, pero tal vez tenga que ser una configuración de incursión. Caro, tanto para el almacenamiento como para el ancho de banda.

Esta es una estimación aproximada, sus datos deberán analizarse primero.

Apoyo

Los servidores tienen tiempo de inactividad, su aplicación no debería. Por lo tanto, necesitará un servidor de respaldo en ejecución.

Un sitio de redes sociales simple debe ser fácil de configurar para una persona con experiencia. Consulte uno y obtenga una opinión experta. Con 1 millón de usuarios, no puede permitirse no hacerlo.

More Interesting

¿Cómo se optimiza la "carrera real" a pesar del gran tamaño y los gráficos realistas?

¿Cuál es la aplicación de Android más útil para citas de Instagram con las mejores características?

¿Cuáles son algunas cosas que apestan en Android Lollipop?

¿Hay un buen alcance para los desarrolladores de aplicaciones de Android en los próximos años?

Me encanta la codificación, qué campo debería elegir; Java, Android o dotnet?

¿Cómo instalo Android Studio si tengo un sistema operativo Windows 8 con 2GB de RAM, Intel Dual core a 2.9GHz y 500GB HDD, y descargué JDK.exe, Installer_r24.4.1.exe (AndroidStudio) y SDK_tool.zip? Es posible

¿Cuándo resolverá Google la fragmentación con el sistema operativo Android?

¿Cuál es la diferencia entre publicar una aplicación a través de sitios web de creación de aplicaciones y Android Studio?

¿Dónde se descarga la aplicación de Android de forma permanente?

Cómo hacer que EditText en Android Studio responda con la acción de un spinner

¿Existe una aplicación de Android para hacer clic en las fotos usando ambas cámaras simultáneamente?

¿Cuánta programación se requiere para la colocación en algunas empresas de gama alta?

¿Cuáles son los requisitos del sistema de programación de Android?

¿Cuándo debe usar una barra superior frente a una barra de navegación inferior dada la adición de barras inferiores en las pautas de diseño de Android?

¿Cómo funciona una aplicación androide cliente-servidor WAMP?