天天看點

mysql進階(一)1-13講

1.mysql的配置檔案

一  、linux:/etc/my.cnf檔案                      windows:my.ini檔案 

 二進制日志logbin:主從複制                   錯誤日志:預設是關閉的,記錄嚴重的警告和錯誤資訊,每次啟動和關閉的詳細資訊。

查詢日志:log

資料檔案:.myd(存放資料)  .myi(存放索引)  frm(存放表結構)

二、mysql的邏輯結構

從上到下分别為連接配接層 (用戶端連接配接), 服務層(SQL分析優化緩存等等),存儲引擎層(真正負責資料存儲和提取)資料存儲層(資料存儲在檔案系統上,并完成與存儲引擎層的互動)

三、索引優化分析

性能下降,執行時間長,等待時間長的可能原因:查詢語句不好、索引失效、關聯查詢太多、伺服器調優各個參數(緩沖,線程數)

SQL執行語句的順序:

機器讀取的順序:先從from 開始  ;下面是SQL解析的時序圖;

表結構(notepad++中修改):

create table `tbl_dept` (
 `id` int(11) auto_increment,
  `deptName` varchar(30) default null,
  `locAdd` varchar(40) default null,
  primary key(`id`)
)engine=innodb auto_increment=1 default charset=utf8;

create table `tbl_emp` (
 `id` int(11) auto_increment,
  `name` varchar(20) default null,
  `deptId` int(11) default null,
   primary key(`id`),
   key `fk_dept_id` (`deptId`)
   #constraint `fk_dept_id` foreign key(`deptId`)  references `tbl_dept`(`id`)
)engine=innodb auto_increment=1 default charset=utf8;

insert into tbl_dept(deptName,locAdd) values('RD',11);
insert into tbl_dept(deptName,locAdd) values('HR',12);
insert into tbl_dept(deptName,locAdd) values('MK',13);
insert into tbl_dept(deptName,locAdd) values('MIS',14);
insert into tbl_dept(deptName,locAdd) values('FD',15);


insert into tbl_emp(Name,deptId) values('z3',1);
insert into tbl_emp(Name,deptId) values('z4',1);
insert into tbl_emp(Name,deptId) values('z5',1);

insert into tbl_emp(Name,deptId) values('w5',2);
insert into tbl_emp(Name,deptId) values('w6',2);


insert into tbl_emp(Name,deptId) values('s7',3);
insert into tbl_emp(Name,deptId) values('s8',4);
insert into tbl_emp(Name,deptId) values('s9',51);