事务
为什么需要事务:
转账、总量稳定,但其他值举行转变。
事务是什么:
作为单个逻辑事情单元执行的一系列操作。
多个操作作为一个整体向系统提交,要么执行/不执行。
事务是一个不可分割的事情逻辑单元。
事务的特征:简称ACID属性(事务平安型强)
原子性(Atomicity):事务是一个完整的操作,各步操作是不可分的,要么执行/不执行。
一致性(Consistency):当事务完成时,总量稳定。
隔离性(lsolation):并发事务之间相互隔离、自力,它不应以任何方式依赖于或影响其他事务。
持久性(Durability):事务完成后,它对数据库的修改被永远保持。
确立事务
#最先事务begin;/start transaction; #提交事务commit; #回滚/打消事务rollback;
关闭和开启事务:
set autocommit=0|1#值为0:关闭事务
#值为1:开启事务
视图
视图做用
1.差别权限职员关注差别的数据。
2.保证数据的平安性。
3.降低数据库的庞大水平。
4.将多个物理数据库抽象为一个逻辑数据库。
视图是什么
1.视图是一张虚拟表,确立在原表上,使用部门数据或多表的综合数据。
2.视图中不存放数据,数据在原始表中。
3.一个原始表,凭据差别权限职员的差别需求,可以确立差别的视图。
确立视图
CTRATE VIEWview_name(规范书写在view后写视图名)AS
select语句; #使用SQL语句删除视图 DROPVIEWIF EXISTSview_name; #IFEXISTS删除前判断视图是否存在 #使用SQL语句查看视图select 字段1,字段2,...from view_name;
#查看所有视图
USE information_schema;
SELECT * FROM views\G;
视图注重
1.视图中可以使用多个表
2.一个视图可以嵌套另一个视图(千层套路)。
3.对视图举行添加、更新和删除操作时直接影响原表。
4.多表时视图不允许添加和删除数据!仅作为查询。(使用视图修改数据会有许多限制,容易失足)
索引
索引是什么
索引是一种有用组合数据的方式,为快速查找到指定纪录
作用
1.大大提高数据库的检索速率
2.优化了数据库的检索速率
MySQL索引按存储类型分类
1.B-数索引:InnoDB、MyiSAM均支持
2.哈希索引
B-数索引:
使用可以显著削减定位纪录时所履历的中心历程,从而加速存取速率。这个数据结构一样平常用于数据库的索引,综合效率较高。
阶的界说
1、根结点至少有两个子女。
2.每个非根节点所包罗的关键字个数 j 知足:┌m/2┐ – 1 <= j <= m – 1。
3.除根结点以外的所有结点(不包罗叶子结点)的度数正好是关键字总数加1,故内部子树个数 k 知足:┌m/2┐ <= k <= m 。
4.所有的叶子结点都位于统一层。
在B-树中,每个结点中关键字从小到大排列,而且当该结点的孩子是非叶子结点时,该k-1个关键字正好是k个孩子包罗的关键字的值域的分划。
由于叶子结点不包罗关键字,以是可以把叶子结点看成在树里实际上并不存在外部结点,指向这些外部结点的指针为空,叶子结点的数目正好即是树中所包罗的关键字总个数加1。
B-树中的一个包罗n个关键字,n+1个指针的结点的一样平常形式为: (n,P0,K1,P1,K2,P2,…,Kn,Pn),其中,Ki为关键字,K1
索引类型
通俗索引:允许在界说索引的列中插入重复值和空值
唯一索引:索引列数据不重复,允许有空值(只有一个)
主键索引:主外键谁人意思
复合索引:将多个列组合作为索引
全文索引:支持值的全文查找,允许重复值和空值
空间索引:对空间数据类型的列确立的索引
确立/删除索引
#确立索引CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEXindex_nameON table_name (column_name[length]…); #UNIQUE|FULLTEXT|SPATIAL #划分对应唯一索引、全文索引或空间索引 #删除索引DROP INDEX index_name ON table_name;
索引注重事项
1.不要使用仅包罗几个差别值的列
2.表中仅包罗几行
3.查询时削减使用*返回所有列,不要返回不需要的列
4.WHERE子句中有多个条件表达式时,包罗索引列的表达式应置于其他条件表达式之前
5.制止在ORDER BY子句中使用表达式
备份和恢复
备份数据库
mysqldump 参数 -u -h -p 需备份的数据库名 需备份的表名 备份后的文件名称
常用参数选项
恢复数据库
mysql –u –p 数据库名 < 备份文件名
source 数据库名
导出/导入数据
SELECT * FROMtablename[WHERE contion]
INTO OUTFILE 'filename' [OPTION]#导出的目的文件 #文件导入到数据表LOAD DATA INFILE filename INTO TABLE tablename [OPTION]#导入数据前应确保目的表已存在!
原文链接:https://www.cnblogs.com/zhrehe-11/p/12872008.html
本站声明:网站内容来源于网络,若有侵权,请联系我们,我们将及时处理。