❝Используйте MyCat для реализации подбазы данных и подтаблицы MySQL.Если вы еще не реализовали ее или не знаете, вы можете взглянуть.
❞
предисловие
Ранее я писал статью о подбазе данных и подтаблице mysql, эта статья просто дает вам представление, но есть много деталей, которые не упомянуты в ответе ниже. Итак, Кака выпустил эту статью.
Эта статья предназначена только для одной из деталей, например, как реализовать подтаблицу подбазы данных MySQL, в этой статье используется промежуточное программное обеспечение базы данных MyCat для достижения.
Среди них наибольшее количество ответов касается того, как управлять запросом на подкачку после подбазы данных и подтаблицы, и этот вопрос будет написан позже.
В реальном применении подбазы данных и подтаблицы MySQL все еще есть много проблем.Кака постарается предоставить всем решения.Если у вас есть лучший план реализации, увидимся в области комментариев!
В этой статье используется среда
- MySQL8.0
- Centos7.3
1. Установка MyCat
Чтобы избежать проблемы с подсказками рекламы, перейдите на официальный адрес MyCat и скопируйте адрес загрузки самостоятельно, Kaka не предоставит его здесь.
Используемая Kaka виртуальная машина — centos7.3.JDK, для которого требуется среда, уже доступен, поэтому я не буду писать туториал. Если нет, Baidu Soso сделает это!
На следующем рисунке показана успешная установка инсталляционного пакетаЧтобы распаковать:tar -zxvf Mycat-server-1.6.7.1-release-20200209222254-linux.tar.gz
, после успешной распаковки в каталоге появится каталогmycat
содержание.
2. Создайте нового пользователя MySQL
Необходимо создать нового пользователя MySQL для подключения к Mycat.
Ниже приведен процесс создания пользователя.
// 创建mycat用户
CREATE USER 'mycat'@'%' IDENTIFIED BY 'mycat';
// 修改密码
ALTER USER 'mycat'@'%' IDENTIFIED WITH mysql_native_password BY ’Fang,1996';
// 刷新权限
FLUSH PRIVILEGES;
3. Настройте MyCat
Элемент конфигурации 1: server.xml
Здесь используется созданный выше новый пользователь MySQL mycat Логическая библиотека, которой можно управлять, называется mycat_order, что соответствует Интерпретируйте это из коробки Первая строка: после значения имени указан пользователь MySQL, созданный выше.
Вторая строка: пароль пользователя mycat
Третья строка: это база данных Второй элемент конфигурации: schema.xml Этот файл в основном изменяет два узла, которые подключаются к другим базам данных. Правило использования мод-лонг, на что нужно обратить внимание сразу Конфигурация этой штуки уже давно нащелкана, а ниже уже настроенная кака Третий элемент конфигурации: rule.xml Вот order_id с использованием правила mod-longЭта модификация заключается в том, что вы можете написать столько узлов, сколько у вас есть Создать базы кака и кака на двух серверах 114.55.103.25 и 192.168.253.129 Создайте две таблицы t_order и t order_detail соответственно. Структура таблицы следующая соединять: После успешного подключения вы можете увидеть нашу логическую библиотекуЗатем добавьте три данных В это время давайте проверим данные t_order библиотеки логики, order_id здесь должен начинаться с 1000, и Kaka использовал некоторые для тестирования ранее.В настоящее время мы смотрим на распределение данных двух баз данных 192.168.253.129 и 114.55.103.25. "база данных 192.168.253.129"Это может видеть, что были введены две части данных
"база данных 144.55.103.25" Эта база данных ввела только одну часть данных На самом деле mycat уже сделал все это за вас. Например, теперь данные, у которых user_id равен 103, распределены по двум базам данных, мы запрашиваем Также есть проблемы с пагинацией, все как обычно Кошка, использованная в этой статье, также является первым контактом с Ка-Ка, и я многого не понимаю. Позже Кака тоже будет понемногу дополнять эти знания, и я надеюсь, что все вместе смогут добиться прогресса. Настойчивость в обучении, ведении блога и обмене информацией — вот убеждения, которых Кака всегда придерживалась с самого начала своей карьеры. Я надеюсь, что статьи о Кака в Nuoda Internet помогут вам немного.
3. Подготовка информации базы данных
CREATE TABLE `t_order_detail` (
`od_id` int(11) NOT NULL,
`order_id` int(11) DEFAULT NULL,
`goods_id` int(11) DEFAULT NULL,
`unit_price` float DEFAULT NULL,
`qty` int(11) DEFAULT NULL,
PRIMARY KEY (`od_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `t_order` (
`order_id` bagint(20) NOT NULL,
`user_id` int(11) DEFAULT NULL,
`pay_mode` tinyint(4) DEFAULT NULL,
`amount` float DEFAULT NULL,
`order_date` datetime DEFAULT NULL,
PRIMARY KEY (`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
4. Проверьте соединение и вставьте данные, чтобы просмотреть статус распределения данных.
mysql -umycat -p -P8066 -h192.168.253.129 --default-auth=mysql_native_password
insert into t_order (order_id,user_id,pay_mode,amount) values (next value for MYCATSEQ_ORDER,103,1
Query OK, 1 row affected (0.01 sec)
insert into t_order (order_id,user_id,pay_mode,amount) values (next value for MYCATSEQ_ORDER,103,1
Query OK, 1 row affected (0.01 sec)
insert into t_order (order_id,user_id,pay_mode,amount) values (next value for MYCATSEQ_ORDER,103,1
Query OK, 1 row affected (0.01 sec)
5. Пейджинговый запрос, требуемые данные запрашиваются в разных таблицах
6. Резюме
❝