mysql安全性案例分析 mysql經典案例分析

2021-10-20 23:05:55 字數 1296 閱讀 5141

問題:

create table a (

id varchar(64) primary key,

ver int,

在id,ver上有聯合索引,10000條資料

為什麼select id from a order by id特別慢?

而select id from a order by id,ver非常快

我的表有幾個很長的字段 varbinary(3000)

推斷:1. 2句sql都用到了索引覆蓋,如果myisam引擎2句sql應該都很快, 推斷用的是innodb引擎

2. order by id ,innodb 引擎聚簇儲存了每列的值,因為有幾個很長的字段,1個塊存不了很多行資料,導致塊比較多,使用id主鍵時,要跨好多小檔案塊,導致效率不高。

3. order by id,ver. 使用的是二級索引,innodb引擎二級索引都是存的 聚簇索引的位址指向聚簇索引,因此不帶資料,索引檔案比較小輕便,記憶體中也能使用,所以速度快。

create table t7 (

id char(64) primary key,

var int not null default 0,

str1 varchar(3000) not null,

str2 varchar(3000) not null,

str3 varchar(3000) not null,

str4 varchar(3000) not null

key `idvar` (id,var)

)engine=myisam charset=utf8;

create table t8 (

id char(64) primary key,

var int not null default 0,

str1 varchar(3000) not null,

str2 varchar(3000) not null,

str3 varchar(3000) not null,

str4 varchar(3000) not null

)engine=innodb charset=utf8;

alter table t7 add index idver(id,var)

結論: innodb 大字段(char)主鍵 造成大量**, 正好發揮的是innodb的劣勢

如果沒有這麼長大欄位的列 ,差距也不會很大

alter table t8 drop column st1;alter table t8 drop column st2;alter table t8 drop column st3;

mysql安全性試驗 Mysql安全性測試

一 沒有進行預處理的sql語句 1.連線資料庫 conn mysql connect 127.0.0.1 3306 root 518666 if conn die could not connect mysql error 2.選擇資料庫 mysql select db mysql safe con...

mysql 網路安全性 MySQL安全性指南(1)

作為乙個mysql的系統管理員,你有責任維護你的mysql資料庫系統的資料安全性和完整性。本文主要主要介紹如何建立乙個安全的mysql系統,從系統內部和外部網路兩個角度,為你提供乙個指南。為什麼安全性很重要,你應該防範那些攻擊?伺服器面臨的風險 內部安全性 如何處理?連線伺服器的客戶端風險 外部安全...

mysql 網路安全性 MySQL安全性指南(3)

2.4 不用grant設定使用者 當你發出一條grant語句時,你指定乙個使用者名稱和主機名,可能還有口令。對該使用者生成乙個user表記錄,並且這些值記錄在user host和password列中。如果你在grant語句中指定全域性許可權,這些許可權記錄在記錄的許可權列中。其中要留神的是grant...