資料庫調優學習

2021-08-22 03:30:09 字數 2487 閱讀 8619

create table qquser

(qqid bigint primary key,

password varchar(20) not null,

lastlogtime datetime not null,

online int not null,

level int not null

);insert into `qquser`(`qqid`,`password`,`lastlogtime`,`online`,`level`)

values (1,'a123456','2017-03-02 00:00:00',1,6),

(2,'b123456','2017-03-02 00:00:00',2,7),

(3,'c123456','2018-03-01 00:00:00',2,6),

(4,'d123456','2018-03-02 00:00:00',2,8),

(7,'g123456','2012-02-02 00:00:00',0,-1),

(8855678,'gues0221','2008-02-21 16:28:20',1,6),

(54789625,'add512#&','2008-02-16 17:01:35',2,1),

(88662753,'admin0219','2008-02-19 21:08:35',0,5);

select relationqqid as qq號碼,nickname as 暱稱,age as 年齡

from baseinfo,relation

where baseinfo.qqid=relation.relationqqid

and relation.qqid=54789625

and relationstatus=0 或者1

select baseinfo.province,count(*) as 總人數 from relation,baseinfo

where relation.relationqqid=baseinfo.qqid

and relation.relationstatus=0

and relation.qqid=54789625

group by baseinfo.province

order by 總人數 desc

update baseinfo set nickname='被淹死的魚',address='解放中路號院室'

where qqid=8855678

delete from relation where qqid=54789625 or relationqqid=54789625

第一正規化(1nf):資料表中的每一列(每個字段)必須是不可拆分的最小單元,也就是確保每一列的原子性;

第二正規化(2nf):滿足1nf後,要求表中的所有列,都必須依賴於主鍵,而不能有任何一列與主鍵沒有關係,也就是說乙個表只描述一件事情;

1.primary key:設定主鍵約束;

2.unique:設定唯一性約束,不能有重複值;

3.default 預設值約束,height double(3,2)default 1.2 height不輸入是預設為1,2

4.not null:設定非空約束,該欄位不能為空;

5.foreign key :設定外來鍵約束。

優化limit:select * from test1 where id>=100000 order by id limit 10

盡量避免select *命令

不讓排序:在使用group by 分組查詢時,預設分組後,還會排序,可能會降低速度。在group by後面增加 order by null 就可以防止排序.

使用連線來替代子查詢:有些情況下,可以使用連線來替代子查詢。因為使用join,mysql不需要在記憶體中建立臨時表。select * from sales2 where company_id not in(select id from company2)

select * from dept, emp where dept.deptno=emp.deptno;

左外連線,效率最高:select * from dept left join emp on dept.deptno=emp.deptno;

利用limit 1取得唯一行

使用 exists代替in

沒有必要時不要用distinct和order by

其它優化方法:改配置檔案,修改連線數、配置快取、使用儲存過程

一組可程式設計的函式,是為了完成特定功能的sql語句集,經編譯建立並儲存在資料庫中,使用者可通過指定儲存過程的名字並給定引數(需要時)來呼叫執行。

>儲存過程就是具有名字的一段**,用來完成乙個特定的功能。

>建立的儲存過程儲存在資料庫的資料字典中。

create procedure begin      end。

資料庫調優

1 資料庫調優 計算機硬體調優 資料庫物件的放置策略 利用資料庫分割槽技術,均勻地把資料分布在系統的磁碟中,平衡i o 訪問,避免i o 瓶 頸 使用磁碟硬體優化資料庫 基本表設計優化 第三正規化的基本特徵 是非主鍵屬性只依賴於主鍵屬性。優點 一是能消除 冗餘資料 節省磁碟儲存空間 二是有良好的資料...

資料庫調優

檢視資料庫連線個數 show global variables like max connections 資料庫連線不上可能是max connections數太少了 增加連線數 配置檔案 etc my.cnf.d server.cnf mysqld mysqld max connections 10...

資料庫調優

優化法則歸納為5個層次 1 減少資料訪問 減少磁碟訪問 2 返回更少資料 減少網路傳輸或磁碟訪問 3 減少互動次數 減少網路傳輸 4 減少伺服器cpu開銷 減少cpu及記憶體開銷 5 利用更多資源 增加資源 1 減少資料訪問 1.1 建立並使用正確的索引 1.2 只通過索引訪問資料 如 select...