数据库部分重点内容回顾
1.什么是聚集索引?
树形结构将数据组织和存储起来,起到加速查询的效果
2.主键索引怎么添加?
(1)聚集索引(主键索引)的添加方式,创建时添加
方式一:
Create table t1(
id int primary key,
)
方式二:
Create table t1(
Id int,
Primary key(id)
)
(2)唯一索引创建时添加:
方式一:
Create table t1(
Id int unique,
)
方式二:
Create table t1(
Id int,
unique key uni_name (id)
)
(3)表创建完了之后添加:
Alter table 表名 add primary key(id)
(4)删除主键索引:
Alter table 表名 drop primary key;
普通索引:
(4)创建:
Create table t1(
Id int,
Index index_name(id)
)
Alter table s1 add index index_name(id);
Create index index_name on s1(id);
(5)删除:
Alter table s1 drop index u_name;
DROP INDEX 索引名 ON 表名字;
Show create table 表名;
3.Sql优化神器explain :
查看一下sql的预执行效率
4.数据备份
导出: mysqldump -h ip -P 3306 -u 用户名 -p密码 -B 库名.表名> 路径 库名.sql
导入 : mysql -u 用户名 -p密码 < 路径 库名.sql
5.
创建用户,指定权限
创建用户:root用户 超级管理员
Use mysql
Create user ‘用户名’@’%’ identified by ‘密码’
用户:chao(*.* 代表所有库,所有表)
分配权限:Grant select,insert,update on *.* to ‘chao’@’%’;
Revoke all on 库名.表名 from ‘chao’@’%’;
Flush privileges;
6.触发器(娜姐:对数据的增删改查之前或者之后,自动触发SQL语句)
Delimiter //
Create trigger t_name before(after) insert(update\delete) on 表名 for each row
Begin
Select * from xx;
End //
Delimiter ;
7.注意,这个还需要多理解
存储过程:
Create procedure p1(
In n1 int,
Out n2 int,
Inout n3 int
)
Begin
If while
End
#上边是主要代码
Set @res = 1;
Set @res2 = 2
Call p1(1,@res,@res2); #调用
Select @res,@res2;
Cursor.callproc(‘p1’,(1,2,3))
Cursor.fetchall()
Sql=’select @_p1_0,@_p1_1,@_p1_2;’
Cursor.execute(sql)
Cursor.fetchall()
8.
事务:
四大特性:原子性\一致性\隔离性\持久性
Start transaction;
一堆sql语句
如果失败了
Declare exit handler for sqlexception(sqlwarning) #声明退出处理对于sql异常
begin
Rollback;
End
Commit;
9.数据库集群 :
当网站的访问量比较大的时候,查看自己的信息(存储在数据库里边的数据),但是数据量非常大的访问,首先连接数据库,一个数据库承受的数据比较多,承受不住多开几个数据库,将性能分散,通过算法实现,这个算法写在python程序中.
10.数据库读写分离
一个数据库专门读操作,一个数据库专门 写操作,写的被分到读的库里.
11.主从复制&&高可用 :
别人访问数据库,数据库崩了,公司为了不出现这种情况,需要实时备份数据,(包括增量备份//实时备份//双机备份),binlog(日志文件),主库崩了,客户端都要连接这个主机,备份的数据库要顶上用,高可用就是瞬间替换之前的数据库.