Mysql高级进阶
事务控制
事务是指作为一个逻辑工作单元执行的一系列操作,这些操作要么全部成功,全部失败。事务确保对多个数据的修改作为一个单元来处理。
在mysql中,只有使用innodb存储引擎的数据库或表才支持事务
事务用于维护数据库的完整性,保证成批的sql语句要么都执行,要么都不执行
事务用于管理insert、update、delete语句
示例


事务的四个特性
原子性、一致性、隔离性、持久性。

mysql事务控制
默认情况下,mysql自动提交事务,即每一条insert、update、delecte的sql语句提交后立即执行commit操作。开启一个事务,可以使用start transaction 或begin,或者将autocommit的值设置为0.
分区表
就是按照某种规则将同一张表的数据分段划分到多个位置存储。对数据的分区存储提高了数据库的性能,被分区存储的数据在物理上是多个文件,但是逻辑上仍然是一个表,对表的任何操作都跟没分表之前一样。在执行增、删、改、查等操作时,数据库会自动找到对应的分区,日能耗执行操作。
从5.1.3开始支持分区partition
在mysql8.0中,只有innodb、NDB两个存储引擎支持分区。
分区表好处
5大好处:提高查询吞吐、并行处理、便于管理、提高查询效率、存储更多

分区表4种类型
Range分区、List分区、Key分区、Hash分区。

Range分区基于一个给定连续区间的列值,把多行分配给分区。
List分区基于列值匹配一个离散值集合中的某个值来进行选择。
Hash分区基于用户定义的表达式返回值来进行选择的分区。
Key分区类似Hash分区,这里Hash Key由mysql系统产生的

分区其他操作
视图




视图是一个虚拟表。复杂查询语句的封装。

视图的基本操作。

复制表的几种方式

导出数据
几种方式(show variables like "%secure_file_priv%";查看数据存放位置,null表示禁止导出;不为空必须指定该存放位置)
select ...into outfile将查询结果导出到文本文件

使用mysql命令连接数据库,有一个-e选项,可以执行指定的sql语句,再结合DOS的重定向操作符">"可以将查询结果导出到文件。

mysqldump是MYSQL用于转存数据库的实用程序,它主要产生一个sql脚本,其中包含创建数据库,数据表,插入数据等所必需的sql语句

定时备份数据库
windows备份

Linux

导入数据
load data

source命令导入较大的SQL文件。可以导入使用mysqldump备份的sql文件

如何恢复误删的数据
使用binlog恢复数据(set global bin_log = 'on';)

MySQL图形化管理工具
(MySQL Workbench、HeidiSQL支持中文、phpMyAdmin免费、Navicat付费,费用不高,支持7种数据库等)
为数据库管理员、程序开发者和系统规划师提供可视化设计、模型建立、以及数据库管理功能。
Python数据分析实例





