分类目录归档:数据库

MyCAT2 入门到实战(二)


4. 【掌握】MyCAT2配置文件介绍

4.1 用户(user)

配置文件位置/usr/local/mycat/conf/users/{用户名}.user.json。这个配置文件主要是用来配置MyCAT的登录用户的,也就是我们连接8066这个端口的用户信息。

{
    "dialect": "mysql",
    "ip": null,
    "password": "123456",
    "transactionType": "proxy"...

Read more

MyCAT读写分离


MyCat读写分离

一、读写分离配置

前面我们已经介绍过了mysql的主从同步和mycat的安装及相关配置文件的介绍,现在我们来配置下具体的读写分离操作。

1.1 创建物理表

我们现在master库中创建一张t_user表,因为主从的关系,slave中也会同步创建该表。

img

1.1 schema.xml配置

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io....

Read more

MyCat全局主键自增长


面我们介绍了MyCat的分库分表操作,那么同一张表中的数据会被保存在不同的数据库中,那么这就涉及到了主键维护的问题,此时肯定不能使用单个数据库中id自增的方式来处理了,这时我们就可以通过MyCat中提供的几种增长的方式来实现。

全局主键自增

一、本地文件自增方式

首先我们来看下第一种方式,也就是本地文件自增方式

1. 修改分片策略

我们原来配置的分片策略crc32slot是不支持主键自增的,所以我们需要修改为auto-sharding-long

img

2. 修改server.xml文件

server.xml文件中的sequnceHandlerType是用来配置主键生成类型的

sequn...

Read more

MyCAT 2分库分表


分库分表

一、分片规则介绍

rule.xml中定义了各种myCat支持的分片规则。

  1. 取模mod-long
  2. 自然月分片 sharding-by-month
  3. 按日期(天)分片sharding-by-date
  4. 按单月小时拆分sharding-by-hour
  5. 范围约定,提前规划好分片字段某个范围属于哪个分片,auto-sharding-long
  6. 范围求模分片
  7. 取模范围约束sharding-by-pattern
  8. 分片枚举sharding-by-intfile
  9. 固定分片hash算法
  10. 截取数字hash解析sharding-by-stringhash
  11. 一致性hash
  12. 日期范围hash分片rang...

Read more

MySQL编程进阶


MySQL流程控制的语法

存储过程

语法:

创建存储过程

drop procedure if exists [存储过程名] ;

delimiter [结束标记]
create procedure [存储过程名]([参数1], [参数2] ...)
begin
    [存储过程体(一组合法的sql语句)]
end [结束标记]

delimiter ;

参数,其格式为 [in|out|inout] parameter_name type

in #表示输入参数;
out #表示输出参数;
inout #表示此参数既可以输入也可以输出;
param_name #表示参数名称;
type...

Read more

MongoDB集群


MongoDB集群

引言

咱们把单机版的MongoDB讲了个大概,但很多情况下,单节点服务往往并不能满足系统需求,毕竟单节点部署的方式有很多隐患:

  • ①没有灾备能力,在单节点宕机的情况下,服务不可用会拖垮整个系统;
  • ②吞吐量不够:系统并发较高、访问量过大时,单节点无法承载流量;
  • ③拓展性不足:只能通过升级单节点的硬件配置,无法横向拓展;
  • ④数据安全风险:在极端情况下,数据损坏或出现丢失,无法有效恢复。

而上述提到的这一系列问题,在采用集群方案部署的情况下迎刃而解,所以本文一起来聊聊MongoDB集群,顺带以MongoDB集群为起点,共同探讨一下分布式存储的发展趋势~

一、MongoDB...

Read more

Redis常见面试题


Redis综述篇:与面试官彻夜长谈Redis缓存、持久化、淘汰机制、哨兵、集群底层原理!

一、Redis基本概念

  • 面试官心理: 靠!手上活都没干完又叫我过来面试,这不耽误我事么,今儿又得加班补活了........咦,这小伙子简历不错啊,先考考它Redis..........
  • 面试官: 谈谈你对Redis的理解?
  • 我: RedisANSI C语言编写的一个基于内存的高性能键值对(key-value)的NoSQL数据库,一般用于架设在Java程序与数据库之间用作缓存层,为了防止DB磁盘IO效率过低造成的请求阻塞、响应缓慢等问题,用来弥补DB与Java程序之间的性能差距,同时,也可以在DB...

Read more

MySQL变量


变量

系统变量

系统变量分类

系统变量分为全局系统变量(需要添加global关键字)以及会话系统变量(需要添加session关键字),有时也把全局系统变量简称为全局变量,有时也把会话系统变量称为local变量。如果不写,默认会话级别。静态变量(在 MySQL 服务实例运行期间它们的值不能使用 set 动态修改)属于特殊的全局系统变量。

  • 全局系统变量针对于所有会话(连接)有效,但不能跨重启

  • 会话系统变量仅针对于当前会话(连接)有效。会话期间,当前会话对某个会话系统变量值的修改,不会影响其他会话同一个会话系统变量的值。

  • 会话1对某个全局系统变量值的修改会导致会话2中同一个全局系...

Read more

MySQL安装补充


Ubuntu22.04安装并配置MySQL

1.安装MySQL

# a.运行以下命令,安装MySQL
sudo apt -y install mysql-server

# b.运行以下命令,查看MySQL版本。
mysql -V
mysql  Ver 8.0.39-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))

2.启动MySQL服务

sudo systemctl start mysql

3.设置开机启动MySQL

sudo systemctl enable mysql
sudo systemctl daemon-reload
...

Read more

MySQL二进制安装


1.下载mysql

MySQL社区版下载

https://downloads.mysql.com/archives/community/

image20200223135527926.png

2.二进制安装

2.1指定安装

将mysql安装到/usr/local/mysql目录中:

# Centos7安装依赖
yum install -y libaio libaio-devel ncurses ncurses-devel openssl openssl-devel

# Ubuntu22.04 安装依赖
sudo apt update
sudo apt install -y libaio1 libaio-dev libtinfo5 l...

Read more