sql >> Base de Datos >  >> RDS >> Mysql

Fragmentación de base de datos vs partición

La partición es más un término genérico para dividir datos en tablas o bases de datos. Sharding es un tipo específico de partición, parte de lo que se llama partición horizontal.

Aquí usted replica el esquema a través (típicamente) de múltiples instancias o servidores, usando algún tipo de lógica o identificador para saber qué instancia o servidor buscar los datos. Un identificador de este tipo a menudo se denomina "Clave fragmentada".

Una lógica común sin clave es usar el alfabeto para dividir los datos. A-D es la instancia 1, E-G es la instancia 2, etc. Los datos del cliente son adecuados para esto, pero se tergiversarán un poco en tamaño en las instancias si la partición no tiene en cuenta que algunas letras son más comunes que otras.

Otra técnica común es usar un sistema o lógica de sincronización de claves que garantice claves únicas en todas las instancias.

Un ejemplo bien conocido que puede estudiar es cómo Instagram resolvió su partición en los primeros días (vea el enlace a continuación). Comenzaron con particiones en muy pocos servidores, utilizando Postgres para dividir los datos desde el principio. Creo que fueron varios miles de fragmentos lógicos en esos pocos fragmentos físicos. Lea su impresionante artículo de 2012 aquí:Ingeniería de Instagram:fragmentación e identificaciones

Consulte aquí también:http://www.quora. com/Cuál-es-la-diferencia-entre-fragmentación-y-partición