復合主鍵
乙個表中的兩個主鍵
聯合主鍵
兩個表中的主鍵,用來確定唯一一條資料
主鍵是唯一性索引。其查詢效率高於一般索引
在使用復合索引的過程中,遇到一種情況,單獨使用第二個主鍵作為查詢條件,該主鍵不會作為索引生效。
表testtt
create
table
`testtt`
(`num`
varchar(22
)not
null
,`name`
varchar(22
)not
null
,`age`
varchar(22
)default
null
,primary
key(
`num`
,`name`))
engine
=innodb
default
charset
=utf8;
執行語句1
通過第乙個主鍵查詢
explain
select num,name,age from testtt where num=
'1'
執行語句2
通過第二個主鍵查詢
explain
select num,name,age from testtt where name=
'1'
執行語句3
兩個主鍵查詢,第二個主鍵在前,第乙個主鍵在後面
explain
select num,name,age from testtt where name =
'1'and num =
'1'
執行語句4
兩個主鍵查詢,第乙個主鍵在前,第二個主鍵在後面
explain
select num,name,age from testtt where num =
'1'and name =
'1'
第二種建表語句:
交換了復合主鍵的先後位置
create
table
`testtt`
(`num`
varchar(22
)not
null
,`name`
varchar(22
)not
null
,`age`
varchar(22
)default
null
,primary
key(
`name`
,`num`))
engine
=innodb
default
charset
=utf8;
執行語句1
通過第乙個主鍵查詢
explain
select num,name,age from testtt where name=
'1'
執行語句2
通過第二個主鍵查詢
explain
select num,name,age from testtt where num=
'1'
復合主鍵中,單獨使用第二個主鍵作為where條件,是不會作為索引去查詢的,需要將第二個主鍵定義為索引才會生效。
復合主鍵中,同時使用第乙個和第二個主鍵最為where條件兩個主鍵都會作為索引生效。
復合主鍵中,單獨使用第乙個主鍵作為where條件,是會作為索引生效的。
在sql前加上explain,可以檢視sql的執行計畫。
檔案系統中的第二個問題
在用大的buff讀取檔案的過程中,發現讀取無法正常結束,fileinfo的內容被破壞掉了.追查了半天,發現是filegetch函式中的一處小bug.在550行,handle findopenfilew fp drive,fp dirclus,fp name if handle這裡,如果該檔案沒有被 ...
關於正規表示式中replace的第二個引數
string.replace searchvalue,newvalue searchvalue 必須。規定子字串或要替換的模式的 regexp 物件。請注意,如果該值是乙個字串,則將它作為要檢索的直接量文字模式,而不是首先被轉換為 regexp 物件。newvalue 必需。乙個字串值。規定了替換文...
查詢陣列中第二個大的數 微軟面試題
題目 給出乙個陣列,要求輸出陣列中第二個大的數 輸入 int a 輸出 34 題解思路 方法一 遍歷 1.定義最大值max初始化為a 0 第二大值為sec,遍歷陣列,如果陣列元素比max大就更新,max a i sec記錄上一次max的值 如果陣列元素不大於max,再將陣列元素和sec判斷,如果陣列...