目录
安装
视图、存储过程和函数、触发器
索引使用
sql优化
并发参数调整
锁
事务
体系结构
mysql是一个关系型数据库,咱们先了解下它的体系结构
connectors客户端层
native C API 、JDBC、ODBC、.NET、PHP、Perl、Python、Ruby、Cobol
mysql server
Management Services & Utillties管理服务和工具服务
Connection Pool连接池、安全管理、链接管理、用户管理、认证管理
sql控制
SQL Interface DDL、DML 、存储过程、触发器等
Parser 对sql解析过滤
Optimizer sql优化器
Caches & Buffers 缓存操作
存储引擎
mysql5.0支持的存储引擎包含:InnoDB、MyISAN、BDB、MEMORY、MERGE、EXAMPLE、.NDB Cluster…其中InnoDB和BDB提供事物安全表,其他存储引擎是非事物安全表
MyISAM
文件存储格式
每个MyISAM在磁盘上存储成3个文件,其文件名都和表名相同
.frm(存储表定义)
.MYD(MYDATA 存储数据)
.YMI(MUIndex 存储索引)
InnoDB
事务
mysql的隔离级别默认是可重复读
存储文件介绍
.frm存储表结构
.ibd存储数据及其索引
MEMORY
数据是存储的内存中,有在磁盘中对应的表结构
操作数据效率比较高
缺点,服务器内存价格昂贵,不宜存储数据量比较大的数据
工具
mysql
连接选项:
mysql -h127.0.0.1 -P3306 -u root -p
执行选项:
mysql -uroot -p3306 db_test -e "select * from table";
mysqladmin
创建数据库:
mysqladmin -uroot -proot create 'db_dbname';
删除数据库:
mysqladmin -uroot -proot drop 'db_dbname';
mysqlbinlog
查看binlog日志位置
which mysqlbinlog
查看内容
/data/mysql/bin/mysqlbinlog --no-defaults --database=db --base64-output=decode-rows -v --start-datetime='2019-04-11 00:00:00' --stop-datetime='2021-12-14 15:00:00' mysql-bin.000007 | more
mysqldump
用来数据库备份或在不同数据库之间进行数据迁移
导出库中的表:
mysqladmin -uroot -proot db_test t_user > tb_user.sql
导出所有表(创建表时先删除表):
mysqladmin -uroot -proot db_test --add-drop-table > tb_all.sql
--add-grop-table 默认开启,可以添加--skip-add-drop-table忽略
导出结构与数据:
mysqladmin -uroot -proot -T /输出文件的位置 db_test t_all.txt
mysqlimport
mysqlimport是客户端导入工具,用来导入mysqldump加-T参数后导出的文本文件
导入数据:
mysqlimport -uroot -proot db_test /usr/local/mysql/t_all.txt
导入结构:
source /usr/local/mysql/tb_all.sql
mysqlshow
查看数据库中所有的库,表,行信息:
mysqlshow -uroot -proot --count
查看指定数据库:
mysqlshow -uroot -proot db_test --count
查看表的详细信息:
mysqlshow -uroot -proot db_test -i