create table user_test_count
(id int primary key not null auto_increment,
name varchar(45),
age int,
email varchar(60),
birthday date
)engine 'innodb';
insert into user_test_count (id, name, age, email, birthday)
values (1,'張三','20','[email protected]','2000-01-01');
insert into user_test_count (id, name, age, email, birthday)
values (2,'','21','[email protected]','2000-01-02');
insert into user_test_count (id, name, age, email, birthday)
values (3,'','22','[email protected]','2000-01-05');
insert into user_test_count (id, name, age, email, birthday)
values (4,'','23','[email protected]','2000-01-07');
#1、當沒有非主鍵索引,會使用主鍵索引
#2、如果存在非主鍵索引,會使用非主鍵索引user_test_count_email_index
#3、如果存在多個非主鍵索引,會使用最小的乙個非主鍵索引user_test_count_birthday_index
#為什麼
/*innodb非主鍵索引:葉子節點儲存的是索引+主鍵
主鍵索引葉子節點:主鍵+表資料
在1個page裡面,非主鍵索引可以儲存更多的條目,對於一張表,1000000資料
使用非主鍵索引,掃瞄page100,主鍵索引500
*/explain
select count(*) from user_test_count;
#1、count(字段) 只會針對該欄位統計,同時會排除 null的行
#2、count(*)和count(1) 一樣
explain
select count(email) from user_test_count;
資料庫調優 2
3.2 基本表設計優化 在基於表驅動的資訊管理系統中,基本表的設計規範是第三正規化。第三正規化的基本特徵 是非主鍵屬性只依賴於主鍵屬性。基於第三正規化的資料庫表設計具有很多優點 一是能消除 冗餘資料 節省磁碟儲存空間 二是有良好的資料完整性限制 基於主外來鍵的參照完整限制 和基於主鍵的實體完整性限制...
資料庫調優之主機調優
學習資料庫需要對很多東西要理解,包括主機,儲存,資料庫,開發。特別調優。因此,資料庫設計的知識還是比較廣的,這篇文章主要是講解一下主機調優。我遇到過一些關於主機引起的資料庫問題,比如資料庫開啟後,資料庫的效能還可以,但是隨著時間增長,主機的記憶體就會耗得很多,資料庫就會變慢 還有就是io繁忙程度10...
資料庫調優
1 資料庫調優 計算機硬體調優 資料庫物件的放置策略 利用資料庫分割槽技術,均勻地把資料分布在系統的磁碟中,平衡i o 訪問,避免i o 瓶 頸 使用磁碟硬體優化資料庫 基本表設計優化 第三正規化的基本特徵 是非主鍵屬性只依賴於主鍵屬性。優點 一是能消除 冗餘資料 節省磁碟儲存空間 二是有良好的資料...