MySQL技术培训 - 第一天

Sharing of MySQL – Chukong MySQL 数据库培训 – 第一天

  1. 基本概念:

Instance 实例:耗费 CPU+内存
Database 数据库:数据文件,仅与磁盘有关

  1. DB 路径? 分配内存多大?

配置文件中参数:
innodb_buffer_pool_size:一般设置为物理内存的 2/3 左右
port:数据库端口
basedir:mysql 程序路径
log-bin:DML 操作(insert,update,delete)日志,用于主从同步,数据库回复操作

  1. 数据库连接操作,发起连接即消耗约 15M 内存。

  2. 模块化的可插拔存储引擎:常用 MyISAM(查询快)和 InnoDB(支持事物)

客户端=>服务器端 + 工具集

软件=>内部连接池->(长连接)->判断操作类型->解析语法,判断权限->优化 SQL 操作->是否存在缓存–>可插拔的 DB 文件(File System, Log)–>数据库实例 Instance

  1. Undo 和 Redo:

Undo 文件:
innodb_data_file_path=ibdata1:2G:autoextend
innodb_data_home_dir

事务回滚:
在执行了 DML 操作之后,commit 之前,所有更新都存在 ibtable 中。
truncate 操作无法回滚原因是此命令不写 ibtable 文件,只记录一个标识。

关于 ibtable:
此文件大小自动拓展, 如果过大无法缩减,唯一方法是重建数据库。
ibtable 移动或删除后无法重启数据库,愿意是 down 机重启时需要查找 ibtable 中未 commit 数据进行恢复操作。

Redo 文件:
innodb_log_file_size=512M
innodb_log_file_in_group=3

  1. Cluster: 同一个 DB 被多个 Instance 访问

征用问题: 同一数据多个访问, 采用仲裁.

  1. 开发建议:

不适用复杂 SQL, 单表单查询.
新加字段时需要重建数据表, 所以涉及时应预留些字段用于后期拓展.

Donate - Support to make this site better.
捐助 - 支持我让我做得更好.