bleer

欢迎你来到我的空间哦~

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

 

 


 

  • 基本概念篇

SQL语言的4种分类(DDL、DML、DCL、DQL)

对应的英文全程:data (definition、manipulation、control、query)language

参考资料:

https://www.cnblogs.com/kawashibara/p/8961646.html

 

总结:

DDL操作对象是库表

DML、DQL操作对象是记录

DCL操作对象是用户

 

DDL包括:create,drop,alter

create database/table/index/view

drop database/table/index/view

alter table

create database qa_test;
create database qa_test2;
create database qa_test3;

create table qa_test.t1(id int);
create table qa_test.t2(id int primary key, id2 int);
create table qa_test.t3(id int, id2 int, id3 int);

create index idx_a on qa_test.t1(id);
create unique index idx_a on qa_test.t3(id3);
create view see_t1 as select * from qa_test.t1;

alter  table qa_test.t1 drop index idx_a;
alter  table qa_test.t1 add primary key(id);
alter  table qa_test.t1 add id2 int;
alter  table qa_test.t1 add id3 int;
alter  table qa_test.t2 drop primary key(id);

drop table qa_test.t2;
drop database qa_test2;
drop view see_t1;

  

DML包括:insert,delete,update

insert into ... values ...

insert into ... select * from ...

delete from .. where 

delete from ...

update ... set ... where ...

update ... set ... 

create database qa_ddl;
create table qa_ddl.t(id int);
insert into qa_ddl.t values(1),(2),(3);
update qa_ddl.t set id = 10 where id >2;
delete from qa_ddl.t where id = 1;
create table qa_ddl.t2(id int, id2 int, id3 int);
insert into qa_ddl.t2 values(1,2,3),(2,3,4);
insert into qa_ddl.t2 select * from qa_ddl.t2;
insert into qa_ddl.t2(id, id2) values (100,200);

 

DCL包括:grant,revoke,commit,rollback

 

DQL包括:select,from,where

 select * from ... where ...

create database qa_ddl;
create table qa_ddl.t(id int);
insert into qa_ddl.t values(1),(2),(3);
update qa_ddl.t set id = 10 where id >2;
delete from qa_ddl.t where id = 1;
create table qa_ddl.t2(id int, id2 int, id3 int);
insert into qa_ddl.t2 values(1,2,3),(2,3,4);
insert into qa_ddl.t2 select * from qa_ddl.t2;
insert into qa_ddl.t2(id, id2) values (100,200);

select * from qa_ddl.t2;

 

 


 数据库的log

分类5个:err-log,general-log,bin-log,slow-log,relay-log

有时候还有DDL log

参考资料:

https://www.cnblogs.com/f-ck-need-u/p/9001061.html#blog5

https://dev.mysql.com/doc/refman/5.7/en/server-logs.html(mysql官方文档)

 这5种log都是什么用途?(下图摘自mysql官方文档)

 

binlog在什么时候更新?

mysql>flush logs;  执行后,关闭旧的binlog,打开新的binlog。

 

my.cnf中的log参数配置

#=============== [error/general/slow log options] ==============================================
log-error-verbosity                     = 1
log-error                               = /usr/local/nestdb_master/log/mysql.err      error-log的位置
general-log                             = ON                                          允许记录general-log
general-log-file                        = /usr/local/nestdb_master/log/mysql.log      general-log的位置
slow-query-log                          = ON                                          允许记录error-log
slow-query-log-file                     = /usr/local/nestdb_master/log/slow.log       error-log的位置
long-query-time                         = 1              查询时间,如果查询小于等于1s,记录到general-log,如果大于1s,记录到error-log
log-queries-not-using-indexes           = 1      

 

mysql> show global variables like 'log_warnings'; 
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_warnings  | 0     |     0:warning信息不记录到error-log中;1:warning信息记录到error-log中;大于1:各类告警信息写入到error-log中。
+---------------+-------+
1 row in set (0.01 sec)

 

 bin-log配置

#------------------> (2) binlog <---------------------------------------------------------------
log-bin                                 = mysql-bin          bin-log的前缀,当每次flush logs;重启mysql,日志文件达到最大时,都会重新更新bin-log
log-bin-index                           = mysql-bin.index    记录了所有bin-log的文件名
sync-binlog                             = 1000                    
binlog-format                           = ROW
binlog-cache-size                       = 1M
max-binlog-size                         = 1G     bin-log文件最大值,超过1G,变更bin-log
expire-logs-days                        = 7

 查看bin-log

[root@vm10-0-0-8 bin]# ./mysqlbinlog   ../var/mysql-bin.000005
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#191114 16:53:43 server id 9988123  end_log_pos 123 CRC32 0xb80d9c2f    Start: binlog v 4, server v 5.7.27-debug-log created 191114 16:53:43
BINLOG '
FxbNXQ8baJgAdwAAAHsAAAAAAAQANS43LjI3LWRlYnVnLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA
AS+cDbg=
'/*!*/;
# at 123
#191114 16:53:43 server id 9988123  end_log_pos 154 CRC32 0x0020c8cb    Previous-GTIDs
# [empty]
# at 154
#191115 13:17:42 server id 9988123  end_log_pos 219 CRC32 0x80e8fd47    Anonymous_GTID  last_committed=0        sequence_number=1       rbr_only=no
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 219
#191115 13:17:42 server id 9988123  end_log_pos 313 CRC32 0x4219fe85    Query   thread_id=73    exec_time=0     error_code=0
SET TIMESTAMP=1573795062/*!*/;
SET @@session.pseudo_thread_id=73/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1436549152/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
create database lr_1
/*!*/;
# at 313
#191115 13:17:53 server id 9988123  end_log_pos 378 CRC32 0xbfbb5fc0    Anonymous_GTID  last_committed=1        sequence_number=2       rbr_only=no
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 378
#191115 13:17:53 server id 9988123  end_log_pos 478 CRC32 0x8217330c    Query   thread_id=73    exec_time=0     error_code=0
SET TIMESTAMP=1573795073/*!*/;
create table lr_1.test(id int)
/*!*/;
# at 478
#191115 13:18:08 server id 9988123  end_log_pos 543 CRC32 0xf0bb2b47    Anonymous_GTID  last_committed=2        sequence_number=3       rbr_only=yes
/*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 543
#191115 13:18:08 server id 9988123  end_log_pos 611 CRC32 0xdf8eb376    Query   thread_id=73    exec_time=0     error_code=0
SET TIMESTAMP=1573795088/*!*/;
BEGIN
/*!*/;
# at 611
#191115 13:18:08 server id 9988123  end_log_pos 658 CRC32 0xef41195b    Table_map: `lr_1`.`test` mapped to number 109
# at 658
#191115 13:18:08 server id 9988123  end_log_pos 698 CRC32 0xde1f9e3c    Write_rows: table id 109 flags: STMT_END_F

BINLOG '
EDXOXRMbaJgALwAAAJICAAAAAG0AAAAAAAEABGxyXzEABHRlc3QAAQMAAVsZQe8=
EDXOXR4baJgAKAAAALoCAAAAAG0AAAAAAAEAAgAB//4BAAAAPJ4f3g==
'/*!*/;
# at 698
#191115 13:18:08 server id 9988123  end_log_pos 729 CRC32 0x0884f90f    Xid = 63
COMMIT/*!*/;
# at 729
#191115 13:18:19 server id 9988123  end_log_pos 776 CRC32 0x7e8d61f6    Rotate to mysql-bin.000006  pos: 4
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

 

 


 

posted on 2019-11-14 16:26  bleer  阅读(770)  评论(0编辑  收藏  举报