分类目录归档:数据库

MyCat全局主键自增长


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

全局主键自增

一、本地文件自增方式

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

1. 修改分片策略

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

img

2. 修改server.xml文件

server.xm...

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解析s...

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 #表示输出参数;
inou...

Read more

MongoDB集群


MongoDB集群

引言

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

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

而上述提到的这一系列问题,在采用集群方案部署的情况下迎刃而解,所以本文一起来聊聊MongoDB集群...

Read more

Redis常见面试题


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

一、Redis基本概念

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

Read more

MySQL变量


变量

系统变量

系统变量分类

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

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

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

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...

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 a...

Read more

MySQL管理


MySQL 管理

1 系统数据库

Mysql 数据库安装完成后,自带了一下四个数据库,具体作用如下:

数据库 含义
mysql 存储 MySQL 服务器正常运行所需要的各种信息 (时区、主从、用 户、权限等)
information_schema 提供了访问数据库元数据的各种表和视图,包含数据库、表、字段类 型及访问权限等
performance_schema 为 MySQL 服务器运行时状态提供了一个底层监控功能,主要用于收集 数据库服务器性能参数
sys 包含了一系列方便...

Read more

MySQL优化


SQL 优化

1.插入数据

  • 批量插入数据
insert into table values(col1,col2),(col1,col2);
  • 手动控制事务
start transaction;
...
commit
  • 主键顺序插入
1,2,3,4,5,78,99
  • 大批量插入
-- 客户端连接服务端时,加上参数 -–local-infile
mysql –-local-infile -u root -p

-- 设置全局参数local_infile为1,开启从本地加载文件导入数据...

Read more