1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/yangdechao_admin-guage-notes

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
12分库分表知识点总结.md 8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 24.06.2025 02:12 0782333

Концепция Sharding-Sphere

Sharding-Sphere представляет собой экосистему открытых распределённых баз данных, состоящую из трёх независимых продуктов: Sharding-JDBC, Sharding-Proxy и Sharding-Sidecar (плановый).

Эти продукты предоставляют стандартизованные функции шардинга данных, распределённых транзакций и управления базами данных, что делает их применимыми для различных сценариев использования, включая Java-подобные, контейнеры, облачные приложения и другие.

Sharding-JDBC

Широко используется как легковесный Java-фреймворк, который предоставляет дополнительные услуги над уровнем JDBC. Он использует прямое соединение клиента с базой данных в виде jar-пакета, не требуя дополнительной установки или зависимостей. Это можно рассматривать как улучшенный JDBC-драйвер, полностью совместимый с JDBC и различными ORM-фреймворками.

  • Подходит для любых Java-подобных ORM-фреймворков, таких как JPA, Hibernate, MyBatis, Spring JDBC Template или прямого использования JDBC.
  • Совместим с любыми сторонними пулами подключений к базам данных, такими как DBCP, C3P0, BoneCP, Druid, HikariCP и другими.
  • Поддерживает любые реализации протокола JDBC. В настоящее время поддерживаются MySQL, Oracle, SQL Server и PostgreSQL.

Sharding-ProxyШироко используется как прозрачный агент базы данных, который предоставляет версию сервера, использующую двоичный протокол базы данных. Это позволяет поддерживать различные языки программирования. В настоящее время доступна версия для MySQL, которая может использовать любой клиент, совместимый с протоколом MySQL (например, MySQL Command Line Client, MySQL Workbench и другие) для работы с данными, что делает её более удобной для DBA.

  • Полностью прозрачен для приложений и может использоваться как обычный MySQL.
  • Подходит для любых клиентов, совместимых с протоколом MySQL.### Sharding-Sidecar

Широко используется как агент базы данных для Kubernetes или Mesos, который работает в виде DaemonSet для проксирования всех запросов к базе данных. Он предоставляет слой взаимодействия с базой данных через безцентровую и независимую от приложений схему, известную как Database Mesh или сетка баз данных. Database Mesh фокусируется на том, как связать распределённые приложения доступа к данным с базами данных, уделяя особое внимание взаимодействию между приложениями и базами данных. Используя Database Mesh, приложения и базы данных могут образовать единую сетевую систему, где каждое приложение и каждая база данных занимают своё место в этой сети.

Способы разделения баз данных

  1. Разделение баз данных осуществляется двумя способами: вертикальное разделение и горизонтальное разделение.

  2. Вертикальное разделение: вертикальное разделение таблиц и вертикальное разделение баз данных

  3. Горизонтальное разделение: горизонтальное распределение таблиц и горизонтальное распределение баз данных

Вертикальное разделение таблиц -----> разделение по столбцам

Горизонтальное разделение таблиц -----> разделение по строкам

Вертикальное разделение баз данных -----> разделение по бизнес-логике, специализированные базы данных для специализированных таблицГоризонтальное разделение баз данных -----> хранение данных в нескольких таблицах с одинаковой структурой данных

Вертикальное разделение таблиц

(1) Операция с таблицей в базе данных, часть полей этой таблицы перемещаются в новую таблицу, а другая часть полей перемещаются в ещё одну таблицу.

Вертикальное разделение баз данных

(1) Одна база данных разделяется по бизнес-логике, специализированные базы данных для специализированных таблиц.

Горизонтальное разделение баз данных

Горизонтальное разделение таблиц

Применение и проблемы разделения баз данных и таблиц

1. Применение

(1) При проектировании базы данных следует учитывать вертикальное разделение баз данных и таблиц

(2) По мере увеличения объёма данных в базе данных, сразу же не следует рассматривать горизонтальное разделение. Сначала следует рассмотреть использование кэширования, разделение чтения и записи, использование индексов и другие методы. Если эти методы не решают проблему, тогда можно рассмотреть горизонтальное разделение баз данных и таблиц

2. Проблемы разделения баз данных и таблиц(1) Проблемы кросс-узловой связи и запросов (пагинация, сортировка)

(2) Проблемы управления несколькими источниками данных

Введение в Sharding-JDBC

  1. Это легковесный Java-фреймворк, являющийся улучшенным JDBC-драйвером.

  2. Основная цель Sharding-JDBC: упрощение работы с данными после разделения баз данных и таблиц.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/yangdechao_admin-guage-notes.git
git@api.gitlife.ru:oschina-mirror/yangdechao_admin-guage-notes.git
oschina-mirror
yangdechao_admin-guage-notes
yangdechao_admin-guage-notes
master