mysql 儲存引擎 第三天

2021-10-01 19:52:32 字數 2847 閱讀 8135

mysql 儲存引擎

1.儲存引擎的介紹?

是mysql資料庫服務自帶的功能程式,是表的處理器,不同的儲存引擎有不同的功能資料儲存方式。

mysql> create table t32(

-> name char(10),

-> age int(2)

-> )engine=myisam;

mysql> show create table t32;

mysql> show create table t33;

vim /etc/my.cnf

[mysqld]

default-storage-engine=儲存引擎名

systemctl stop mysqld

systemctl start mysqld

show engines;檢視

常用儲存引擎的特點

myisam特點

獨享表空間

表。frm 表結構 desc 表

表 myi 表索引

表。myd 表資料 select * from 表;

表 行級鎖( 對錶訪問時,只給被訪問的行加鎖)

不支援事務,事務回滾,外來鍵

鎖 解決併發訪問衝突問題。

查詢操作 select * from 表;

寫操作(insert delete update)

鎖粒度表級鎖:一次直接對整張表進行加鎖。

行級鎖只鎖定某一行。

頁級鎖:對整個頁面(mysql管理資料的基本儲存單位)進行加鎖。

鎖型別:

1.寫型鎖:(互斥鎖、排它鎖):是獨佔鎖,上鎖期間其他執行緒不能讀表或寫表。

2.讀型鎖(共享鎖):支援併發讀。

innodb儲存引擎特點

支援表級/行級鎖定。

支援事務,事務回滾,支援外來鍵

支援表空間

相關表檔案 frm,ibd,

事務:一次資料訪問從開始到結束的過程。

事務回滾: 訪問過程中任意一步失敗,把操作恢復到,操作之前的狀態。

4.建表時如何決定表使用的儲存引擎

處理寫操作多的表適合用innodb儲存引擎

接收讀操作多的表時候使用myisam儲存引擎。

事務日誌檔案

nt ~]# cd /var/lib/mysql

[root@client mysql]# ls

[root@client mysql]# du -sh ib_logfile*

ib_logfile1

ib_logfile0

ibdata1

mysql>create database userdb;

mysql> create table userdb.user(

-> name char(30),

-> password char(1),

-> uid int(2),

-> gid int(2),

-> comment varchar(50),

-> homedir varchar(60),

-> shell char(30),

-> index(name)

-> );

資料匯入:把系統檔案的內容儲存到資料庫伺服器的表裡。

mysql> show variables like"secure_file_priv";

mysql> system ls /var/lib/

mysql>system cp /etc/passwd /var/lib/mysql-files/ 拷貝

mysql> system ls /var/lib/mysql-files

mysql> load data infile

-> 「/var/lib/mysql-files/passwd」

-> into table userdb.user

-> fields terminated by 「:」

-> lines terminated by 「\n」;

mysql> alter table userdb.user add id int(2) zerofill primary key auto_increment first; 增加行號。

mysql> select * from userdb.user;

更改搜尋目錄

[root@web1 ~]# vim /etc/my.cnf

ecure_file_priv="/mydata" 匯入時搜尋目錄

[root@web1 ~]# mkdir /mydata

[root@web1 ~]# chown mysql /mydata/

[root@web1 ~]# setenforce 0

[root@web1 ~]# cp /etc/passwd /mydata/

[root@web1 ~]# systemctl stop mysqld.service

[root@web1 ~]# systemctl start mysqld

mysql> show variables like 「secure_file_priv」

-> ;

mysql> alter table userdb.user

-> drop id; 刪除行號。

重新匯入資料。

mysql> load data infile

-> 「/mydata/passwd」

-> into table userdb.user fields terminated by 「:」

-> lines terminated by 「\n」;

mysql> select name,uid,gid from userdb.user limit 3 into outfile 「/mydata/a.txt」;

mysql第三天 事務

my.ini 可選引數有 read uncommitted,read committed,repeatable read,serializable.mysqld transaction isolation repeatable read當前session select tx isolation se...

MySQL學習第三天

create table if not exists user id tinyint,engine innoob charset utf8 之後使用desc name 你會驚奇的發現tinyint後面多出了乙個4 那是因為tinyint可以表示128,符號也代表一位,它是資料寬度 即便你設定資料寬度...

初學MYSQL第三天

語法 select 查詢列表 from 表名 where 篩選條件 一 按條件表示式篩選 條件運算子 案例1 查詢工資 12000的員工資訊 select from employees where salary 12000 案例2 查詢部門編號不等於90號的員工名和部門編號 select last ...