mysql資料庫結構 Mysql資料庫的結構

2021-10-25 14:14:30 字數 2839 閱讀 8610

1.mysql 版本

oracle mysql 8.0

mariadb

perconadb

主流版本

mysql 5.6 5.6.36 5.38 5.6.40

mysql 5.7 5.7.18 5.7.20 5.7.22

企業版本選擇: 6-12月之間的ga

2.mysql的體系結構

2.1 mysql c/s結構

兩種鏈結方法: tcp/ip (遠端,本地),socket(本地)

mysql -uroot -poldboy123 -h 10.0.0.200 -p3306

mysql -uroot -poldboy123 -s /tmp/mysql.sock

2.2 mysql例項

例項=mysqld+記憶體結構

mysql例項*****=> mysqld(董事長)---->master thread(經理)---->n thread(員工) ------>記憶體結構(辦公區)

2.3 mysqld三層結構

連線層1.提供連線協議(tcp ,socket)

2.使用者驗證

3.提供專用鏈結執行緒

sql層

1.接收上層的命令

2.語法檢測

3.語義(sql型別),許可權

sql型別:ddl資料定義語言 dcl資料控制語言 dml資料操作語言 dql資料查詢

4.專用解析器解析sql,解析成多種執行計畫

5.優化器:幫我們選擇乙個代價最低的執行計畫(cpu,io,mem)

6.執行器:按照優化器的選擇,執行sql語句,得出獲取資料方法

7.查詢快取:預設是關閉的. 一般會使用redis產品替代 tair

8.記錄日誌:二進位制日誌

儲存引擎層

按照sql層結論,找相應資料,結構化成表的形式

3. mysql的邏輯結構

庫(schema):儲存表的地方(庫名,屬性)

表(table):二維表

元資料表名字

表的屬性(表的大小,許可權,儲存引擎,字符集等)

列:列名字,列屬性(資料型別,約束,其他定義)

記錄:資料行

4.sql 語句(sql92)

4.1 sql 種類

ddl資料定義語言

dcl資料控制語言

dml資料操作語言

dql資料查詢語言

4.2 sql語句的操作物件庫表

4.3 不同分類語句作用

ddl :

庫create database

drop database

alter databse

sql語句規範第一條:

create database oldboy charset utf8mb4;

1.關鍵字大寫(非必須),字面量小寫(必須)

2.庫名字,只能是小寫,不能有數字開頭,不能是預留關鍵字

3.庫名字必須和業務名有關,例如his_user;

4.必須加字符集.

表create table

drop table

alter table

create table t1 (

id int not null primary key auto_increment comment '使用者id',

sname varchar(20) not null comment '使用者姓名',

gender enum('f','m','u') not null default 'u' comment '使用者性別',

telnum char(11) not null unique comment '手機號',

***ate datetime not null default now() comment '錄入時間'

)engine innodb charset utf8mb4;

sql語句規範第二條:

1.關鍵字大寫(非必須),字面量小寫(必須)

2.表名必須小寫,不能有數字開頭,不能是預留關鍵字

3.表名字必須和業務名有關

4.必須加儲存引擎和字符集

5.適合的資料型別

6.必須要有主鍵

7.盡量非空選項

8.欄位唯一性

9.必須加注釋

10.避免使用外來鍵

11.建立合理的索引

dcl:

grant

revoke

lock

dml :

insert

update

delete

sql語句規範第三條:

1.insert語句按批量插入資料

2.update必須加where條件

3.delete盡量替換為update

4.如果有清空全表需求,不要用delete,推薦使用truncate

dql :

select

show

sql語句規範第四條:

1. select語句避免使用 select * from t1; ----> select id,name from t1;

2. select語句盡量加等值的where條件.例如 select * from t1 where id=20;

3. select 語句對於範圍查詢,例如 ;select * from t1 where id>200; 盡量新增limit或者 id>200 and id<300 union all id>300 and id<400

4. select 的where 條件 不要使用 <> like '%name' not in not exist

5. 不要出現3表以上的表連線,避免子查詢

6. where條件中不要出現函式操作.

mysql內建資料庫結構

mysql儲存有賬戶資訊,許可權資訊,儲存過程,event,時區等資訊sys包含了一系列的儲存過程 自定義函式以及檢視來幫助我們快速的了解系統的元資料資訊。元資料是關於資料的資料,如資料庫名或者表名,列的資料型別,或訪問許可權等 performance schema用於收集資料庫伺服器效能引數inf...

mysql資料庫效能資料 MYSQL資料庫效能優化

1.選取最適用的字段屬性 表中字段的寬度設得盡可能小 char 的上限為 255 位元組 固定占用空間 varchar 的上限 65535 位元組 實際占用空間 text 的上限為 65535。盡量把字段設定為 not null,執行查詢的時候,資料庫不用去比較 null 值。2.使用連線 join...

查詢mysql資料庫結構sql

mysql資料庫中的自有資料庫 information schema 包含了所有資料庫的資料,其中 columns 表包含了資料庫中所有表的所有欄位的資訊,一下是乙個查詢database資料庫中table1表的資料sql select column name 列名,data type 字段型別 ch...