mySql
mysql
存储过程
mysql 存储过程中利用游标循环结果集
mysql 触发器 if then elseif else 的运用
JAVA微信开发-如何保存包含特殊字符的微信昵称
系统
程度从强到弱
- drop table tb
drop将表格直接删除,没有办法找回
- truncate (table) tb
删除表中的所有数据,不能与where一起使用
- delete from tb (where)
删除表中的数据(可制定某一行)
- 区别:truncate和delete的区别
1
2
3
4
51、事务:truncate是不可以rollback的,但是delete是可以rollback的;
原因:truncate删除整表数据(ddl语句,隐式提交),delete是一行一行的删除,可以rollback
2、效果:truncate删除后将重新水平线和索引(id从零开始) ,delete不会删除索引
3、 truncate 不能触发任何Delete触发器。
4、delete 删除可以返回行数
从现有数据库创建表
1 | CREATE TABLE temp_no_invoice_other AS SELECT * FROM `cargocn`.`temp_no_invoice` |
1 | select version(); |
ACID,原子性(Atomicity)、一致性(Correspondence)、隔离性(Isolation)、持久性(Durability)。
事物的4种隔离级别
隔离级别,
读未提交(RU)
读已提交(RC)
可重复读(RR)
串行
1、MySQL的复制原理以及流程
基本原理流程,3个线程以及之间的关联;
(1)主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中;
(2)从:io线程——在使用start slave 之后,负责从master上拉取 binlog 内容,放进 自己的relay log中;
(3)从:sql执行线程——执行relay log中的语句;
一个6亿的表a,一个3亿的表b,通过外间tid关联,你如何最快的查询出满足条件的第50000到第50200中的这200条数据记录。
1、如果A表TID是自增长,并且是连续的,B表的ID为索引
select * from a,b where a.tid = b.id and a.tid>500000 limit 200;
2、如果A表的TID不是连续的,那么就需要使用覆盖索引.TID要么是主键,要么是辅助索引,B表ID也需要有索引。
select * from b , (select tid from a limit 50000,200) a where b.id = a .tid;