mysql学习二c

1.联合索引的使用情况

当两个字段单独设置索引的时候,经过索引之后仍然都有很多数据的时候。比如 当你值设置stu_id或者tea_id都会剩余很多记录的时候,就将两者设置组合索引但是响应的维护成本也就大些。

在mysql分页语句的时候,将where 后的字段 和 limit的字段设置成索引。

创建复合索引的时候,要注意顺序,如index(id,name,age) ,这对于 id查询,id name很有效果,但是对于name age 查询效果不大。

 

2.分页语句

#分页语句
SELECT * from student LIMIT 5,4;
 #优化语句
alter table  student add index index_yh(sno,ssex);
SELECT * from student where ssex ="男" ORDER BY sno LIMIT 5,4;

#分页语句  oracle
SELECT * from 
(
SELECT  a.* ,rownum rn from (SELECT *from student) a
WHERE rownum <40
)b
WHERE b.rn>=20 ;

3.mysql  的复制原理以及主从表

主从表,即保证一个主表和从表的数据是一致的。在主表更新的时候,从表也能保持与主表的一致。

具体实现是: 根据mysql的复制原理,当主表开启bin功能之后,对主库的更新操作会写入二进制日志文件中,从表会隔一段时间进行检测是否有更新。

如果有更新则,从表开启io线程,请求这些日志,而主表开启Dump线程将从 从表最后一次更新的日志地方开始,将这之后的日志发送给从表,从表的io线程读取这些日志并且即放在中继日志中; 然后从表开启sql线程 ,将中继日志中的日志进行执行操作,更新从数据库。

 

 

注意的是:  一共是三个线程,主表要开启binlog 二进制日志功能,从表要得到主表授远程连接的权限。异步操作。

mysql支持的复制: 默认采用的语句复制,当无法进行语句复制的时候,进行行复制。

作用: 读写分离,减轻主服务器的压力,负载均衡,数据备份, 维护数据安全性。

配置过程中注意事项:

sync_binlog =n  表示的是,每当n个事物完成后就强制将二进制日志同步到磁盘中去。这样即使崩溃了,也不会丢失日志中内容。但是消耗比较大,=0时效率高,但是存在风险。 

4.acid

原子性 一致性 隔离性 永久性

隔离性: 当多个事物并发操作一个数据的时候,当前事物不能受其他事物的操作的影响。

并发中事物容易出现的问题

脏读,   当前事物读到的是另一个事物修改但是还未提交的数据。此时另一个事物回滚操作,就容易产生脏读。

不可重读,  当前线程A事物多次读取数据之后,返回的结果是不一样的。原因在A事物读取但是还未提交的时候,B事物进行update操作。

幻读    当前事物读取的数据本不该有的,只是在当前事物读取的过程中,其他事物有插入的新数据。比如事物a进行修改操作,将所有id =1,此时B事物进行插入操作。事物A就会发现还有一条数据没有更新,其实这是事物B新插入的。与不可重复读, 不同的是他是对于插入操作,而不可重读读是更新操作。

 

四中隔离级别

读未提交  : 容易产生脏读问题

读已提交: A事物只能读取已经提交的事物。 读加读锁,写加写锁,避免了脏读 ,有可能产生不可重复读,幻读问题。

可重读 :  A事物在读取数据还未提交的时候,B事物不可以对该数据进行插入。在读事物的时候,加锁,其他事物不可进行操作。容易产生幻读问题,因为两次读操作是两个事物。(mysql 默认)

序列化:读事物的时候,加表级锁,直到读事物完成,其他事物不可进行操作。避免幻读。

5 innodb

innodb  支持外键 事物 ,行级锁。通过索引进行加上行锁。默认每个sql语句就是一个事物。

myisam 虽然不支持事物 是表级锁,但是查询速度快性能高。,全文索引 。select count(id) from a

 

6存储过程

存储过程是编写一段sql语句,可以有参数,也有返回值。

在调用的时候直接调用,不必在继续重新编写传输sql语句,而是直接进行调用就可以了。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值