随笔分类 - DB及框架 / mysql
摘要:一、多套数据源 1、独立数据库连接信息 Spring Boot 的默认配置文件是 application.properties ,由于有两个数据库配置,独立配置数据库是好的实践,因此添加配置文件 jbdc.properties ,添加以下自定义的主从数据库配置: # db01 spring.data
阅读全文
摘要:一、数据库表设计 (一)配置规范 1. MySQL 数据库默认使用 InnoDB 存储引擎。 2. 保证字符集设置统一,MySQL 数据库相关系统、数据库、表和字段的字符集都用 UTF8,应用程序连接、展示、客户端等可以设置字符集的地方也都统一设置为 UTF8 字符集。 3. Mysql数据库的事务
阅读全文
摘要:Homebrew 安装 /usr/bin/ruby -e "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install)" 一、安装OpenResty 安装并设置环境变量 brew install openresty
阅读全文
摘要:一、数据库瓶颈解决方案 在大流量时,数据库会成为系统瓶颈,其总体的解决方案如下: 1、项目架构使用缓存,90%请求拦截上游服务器 ———— 读操作 2、数据归档处理 (把一些用户不访问的数据直接归档处理,缓解数据库压力)--使用master ,slave架构 3、停机扩容 影响数据库性能因数: 1、
阅读全文
摘要:一、insert语句执行流程 二、事务介绍 数据库具有ACID四大特性: 原子性(atomicity):事务最小工作单元,要么全成功,要么全失败。 一致性(consistency):事务开始和结束之后,数据库完整性不会被破坏 隔离性(isolation):不同事务间互不影响,四种隔离级别RU(读未提
阅读全文
摘要:一、一条update语句 二、Mysql锁介绍 按照锁的粒度来说,Mysql主要包含三种类型的锁定机制:全局锁、表级锁、行级锁 全局锁:锁的是整个database,由Mysql的Sql layer层实现。 表级锁:锁的是整张表,由Mysql的Sql layer层实现。 行级锁:锁的是某行数据,也可能
阅读全文
摘要:一、一条select语句 一条查询语句查询时,执行流程如下: 二、索引介绍 索引的优势是可以提高数据检索的效率,降低数据库的IO成本;可以通过索引列对数据进行排序,降低数据排序成本,降低了CPU消耗。其劣势是索引会占据磁盘空间,其虽然会提高查询效率,但是会降低更新表的效率。 索引可以分为聚集索引、覆
阅读全文
摘要:一、InnoDB架构图 上图详细展示了InnoDB存储引擎的存储结构,由图可见,InnoDB存储引擎由内存池、后台线程和磁盘三大部分组成。 二、InnoDB磁盘文件 InnoDB的磁盘文件分为系统表空间、用户表空间、Redo日志文件和归档文件。 二进制文件(binlog)是由MySql_Servic
阅读全文
摘要:一、Mysql架构图 上图就是Mysql的架构图,对于其中组件说明如下: 1、Connectors 连接器,指不同语言与Mysql的交互 2、Management Services & Utilities 系统管理&控制工具 3、Connection Pool:连接池 (1)管理用户连接,等待处理连
阅读全文
摘要:一、Sharding JDBC实现分库分表 对于Sharding JDBC分库分表,配置残烛可以分为几大块: 数据源配置: 配置参数:spring.shardingsphere.datasource.names 说明:如果用到分表,则需要配置多个数据源,多数据源之间用逗号分隔 数据源连接信息配置:
阅读全文
摘要:一、集群搭建之主从复制 (一)主从复制原理 这里需要了解两个文件,bin log和relay log(中继日志)文件。 bin log:bin log记录所有的数据更改操作,可用于本机数据恢复和主从数据同步,其刷入磁盘方式有三种:每秒一次将数据刷新入磁盘;每次事务提交将数据刷新入磁盘;每一秒一次 +
阅读全文
摘要:一、查看及卸载 1、查看是否有已安装mysql rpm -qa|grep mysql 2、如果存在,删除 yum remove -y mysql mysql-libs mysql-common rm -rf /var/lib/mysql rm -f /etc/my.cnf 二、安装 1、安装 #下载
阅读全文
摘要:1、导入包 导入mysql和springJDBC的关系依赖包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency
阅读全文
摘要:1、拉取mysql容器 docker pull mysql:5.7 2、创建用于挂载的目录(日志目录、数据目录、配置目录) 如果不创建挂载目录,一旦容器重启,则数据会全部丢失。 mkdir -p /usr/data/mysql/logs /usr/data/mysql/data /usr/data/
阅读全文