CloudNativeEra
  • Introduction
  • 名词解释
  • Computer Science
    • Computer Organization
      • CPU
      • 二进制、电路、加法器、乘法器
      • 编译、链接、装载
      • 存储器
      • IO
    • Operating System
      • 操作系统基础知识
      • 系统初始化
      • 进程管理
      • Everything about Memory
      • 文件系统
      • 并行编程
      • Linux
        • CPU
        • IO 多路复用
        • DMA IO and Linux Zero Copy
    • Computer Network
      • 网络相关命令
      • 评估系统的网络性能
      • 网络抓包
      • Linux 最多支撑的 TCP 连接
      • 网络虚拟化
      • DHCP 工作原理
    • Data Structure and Algorithm
      • 题目列表
      • Summarize
        • 方法总结
        • 二分思想
        • 树的演化
        • 算法思想总结
      • Data Structure
        • Data Struct - Array
        • Tree
        • Heap
        • Hash
        • 字符串
      • Algorithm
        • Sorting Algorithm
        • 查找
        • 贪心算法
        • 动态规划
        • 位运算
      • Practice Topics
        • Data Struct in SDK
        • Topic - Tree
        • Topic - Graph
        • Topic - 滑动窗口
        • 剑指 Offer 题解
    • 并发编程
      • 并发模式
      • 并发模型
  • 系统设计
    • 软件设计
      • 软件架构
      • 编程范式
      • 系统设计题
      • 设计原则
      • 计算机程序的构造和解释 SICP
    • 领域驱动设计
      • 应用:在线请假考勤管理
      • 应用: library
    • 微服务与云原生
      • Designing and deploying microservices
      • 容器技术
      • Docker
      • Etcd
      • Kubernetes
        • Kubernetes - Mapping External Services
      • Istio
      • 监控
    • 分布式系统
      • 分布式理论
      • 分布式事务
    • 后端存储设计
      • 缓存设计
      • 数据库架构设计
    • CI/CD
    • 设计最佳实践
    • 测试
    • 安全
    • 综合
      • 开发实践
      • 分布式锁
      • 分布式计数服务
      • 弹幕系统设计
      • 消息队列设计
      • 分布式ID生成算法
      • 限流设计
      • 网关设计
      • 通用的幂等设计
      • 分布式任务调度
        • Timer
        • ScheduledExecutorService
        • Spring Task
        • Quartz
      • 交易系统
      • 权限设计
  • 编程语言
    • 编程语言
    • C & C++
    • Java
      • JVM
        • JVM Bytecode
      • Java 核心技术
      • Java 8 新特性
      • Java 集合框架
      • Java NIO
      • 并发编程
        • 线程生命周期与线程中断
        • 三个线程交替打印
        • 两个线程交替打印奇偶
        • 优雅终止线程
        • 等待通知机制
        • 万能钥匙:管程
        • 限流器
        • 无锁方案 CAS
    • Java 源码阅读
      • Unsafe
      • 异步计算 Future
      • Java Queue
      • CoalescingRingBuffer 分析
      • Java Collections
        • PriorityQueue 分析
        • HashMap 分析
        • TreeMap
    • Golang
    • Python
  • 框架/组件/类库
    • Guava
      • Guava Cache
      • Guava EventBus
    • RxJava
    • Apache MINA
    • Netty
      • 网络 IO 模型
      • Netty 生产问题
    • Apache Tomcat
    • MyBatis
    • 限流框架
    • Spring Framework
      • Spring Core
      • Spring 事务管理
    • Spring Boot
    • Spring Cloud
      • Feign & OpenFeign
      • Ribbon
      • Eurake
      • Spring Cloud Config
    • FixJ
    • Metrics
    • Vert.x
  • 中间件
    • Redis
      • Redis 基础
        • Redis 数据结构设计与实现
        • Redis 高性能网络模型
      • Redis checklist
      • 应用案例 - Redis 数据结构
      • 应用案例 - Redis 缓存应用
      • 应用案例 - Redis 集群
      • Redis 客户端
      • Redis 生产案例
        • [译] 在 Redis 中存储数亿个简单键值对
    • MySQL
      • MySQL 基础
      • MySQL Index
      • MySQL Transaction
      • MySQL 优化
      • MySQL 内核
      • MySQL Command
      • MySQL Checklist
      • MySQL Analysis Tool
      • 实现 MySQL
    • State Machine
    • 数据库连接池
    • MQ
      • 高性能内存队列 Disruptor
      • Kafka
      • Pulsar
      • RocketMQ
        • Broker 的设计与实现
      • NSQ
  • 实际案例
    • 线上 Case
      • Request Aborted
      • MySQL - Specified key was too long
      • Java 应用 CPU 100% 排查优化
      • 频繁 GC 导致的 Java 服务不响应
      • 导出优化
  • 大数据
    • 流计算
    • Flink
  • 其他
    • 工具
    • 读书
      • 设计数据密集型应用
      • 实现领域驱动设计
      • 精通比特币
      • 提问的智慧
    • 论文
    • 工程博客
    • 阅读源码
    • 面试
      • 如何在最短的时间里对对方有个全面的了解
    • 分享
    • 软技能
    • Todo
  • Blog
    • #算法
      • 查找
      • 位运算
      • 树
    • #架构
      • 1- 通信
    • Design & Dev & Opt
      • High Performance Data structure Design
  • Tiny Project
    • A Simple WeChat-like Instant Messaging Platform
由 GitBook 提供支持
在本页
  • 插入数据的存储过程
  • DDL and DML
  • 表相关
  • MySQL 命令行
  • 事务相关
  • mysqld 相关
  • Innodb 相关
  • 主从相关

这有帮助吗?

  1. 中间件
  2. MySQL

MySQL Command

每个MySQL程序都有许多不同的选项。大多数程序提供了一个--help选项,你可以查看该程序支持的全部启动选项以及它们的默认值。例如,使用mysql --help可以看到mysql程序支持的启动选项,mysqld_safe --help可以看到mysqld_safe程序支持的启动选项。查看mysqld支持的启动选项有些特别,需要使用mysqld --verbose --help。

插入数据的存储过程

CREATE TABLE `words` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `word` varchar(64) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB;

delimiter ;;
create procedure idata()
begin
  declare i int;
  set i=0;
  while i<10000 do
    insert into words(word) values(concat(char(97+(i div 1000)), char(97+(i % 1000 div 100)), char(97+(i % 100 div 10)), char(97+(i % 10))));
    set i=i+1;
  end while;
end;;
delimiter ;

call idata();

DDL and DML

// 建库语句
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

表相关

-- 查看索引信息
show index from t;

-- 查看表
desc user;

-- 
show table status like 'user';

-- 更新表的索引统计信息
analyze table

-- 
show create table test;

MySQL 命令行

### mysqld
# 初始化 mysql server 数据目录
$ bin/mysqld --defaults-file=./my.cnf --initialize --user=dfg
# 后台启动 mysql server
$ bin/mysqld --defaults-file=./my.cnf &

### mysql
# 连接 MySQL Server
$ bin/mysql -h 127.0.0.1 -P 3306 -u root -p

# 导入数据
$ bin/mysql -h 127.0.0.1 -P 3306 -u root -p < test.dump

### mysqladmin

### mysqldump

事务相关

# 登录MySQL后执行
### 事务通用

# 开启一个事务,在执行到第一个语句时才真正启动成功
#  一致性视图是在执行第一个快照读语句时创建的
mysql> start transaction;
mysql> begin;

# 开启一个事务
# 一致性视图是在执行 start transaction with consistent snapshot 时创建的
mysql> start transaction with consistent snapshot;

隔离级别

# 查看隔离级别
mysql> show variables like 'transaction_isolation';

# 查询 session 级别的变量值
mysql> select @@tx_isolation;

# 查询 global 级别的变量值
mysql> select @@global.tx_isolation;

# 设置事务隔离级别 (会话级别)
mysql> SET session TRANSACTION ISOLATION LEVEL READ COMMITTED;
# or
mysql> set @@session.tx_isolation = 'READ-COMMITTED';
# or
mysql> set transaction isolation level read committed;

# 设置全局的隔离级别
mysql> set @@global.tx_isolation = 'READ-COMMITTED';
mysql> set global transaction isolation level read committed;

# 通过sql查询事务隔离级别
mysql> select * from information_schema.INNODB_TRX \G;

锁相关

### 锁
# 查询时加锁

# 对当前记录加 X 锁,任何其他语句都需要阻塞等待
mysql> select * from user where uid = 101 for update;

# 对当前记录加 S 锁
mysql> select * from user where uid = 101 lock in share mode;

# 关闭 Gap lock 的方式
# 1. 事务隔离级别设置为 READ COMMITED
# 2. 参数 innodb_locks_unsafe_for_binlog 设置为 1,但是这种方式不推荐,在未来的版本这个参数被废弃了

mysqld 相关

### 查看状态
# 查看表的详细信息
mysql> show table status like 'account' \G;

### 查看进程信息
mysql> show processlist;

Innodb 相关

###
# 查看 Innodb 的状态
mysql> show engine innodb status \G;

# 查看 undo 信息
mysql> show varibales like 'innodb_undo%';

### innodb 的一些参数

# innodb 缓冲区大小,如 1G
innodb_buffer_pool_size

# 每个表都是使用1个独立的表空间,默认是 1
innodb_file_per_table

# redo log
innodb_log_file_size
innodb_log_files_in_group

# purge 相关
innodb_purge_batch_size

# 控制重做日志(redo log)的写盘和落盘策略, 推荐设置为 1
#  http://mysql.taobao.org/monthly/2014/08/02/
innodb_flush_log_at_trx_commit
innodb_use_global_flush_log_at_trx_commit

# 在准备刷一个脏页的时候,如果这个数据页旁边的数据页刚好是脏页,就会把这个“邻居”也带着一起刷掉;
# 而且这个把“邻居”拖下水的逻辑还可以继续蔓延,也就是对于每个邻居数据页,
# 如果跟它相邻的数据页也还是脏页的话,也会被放到一起刷。
# 当使用 IOPS 较高的 SSD 盘时,可以考虑关掉,设置为 0
innodb_flush_neighbors

主从相关

# 查看 Master 状态
mysql> show master status;

# 查看 Slave 状态
mysql> show slave status;

# 查看 Slave 主机
mysql> show slave hosts;

# 查看 binlog 文件
mysql> show binary logs;

# 查看第一个 binlog 中的内容
mysql> show binlog events;

# 查看指定文件的 binlog 内容
mysql> show binlog events in 'mysql-bin.000001';

# 启动复制
mysql> start slave;

# 停止复制
mysql> stop slave;
上一页MySQL 内核下一页MySQL Checklist

最后更新于4年前

这有帮助吗?