1、合理安排表關係
2、盡量把固定長度的字段放在前面
3、盡量使用char 代替varchar
4、分表:水平分和垂直分
1、盡量用where來約束範圍到乙個比較小範圍的程度,比如分頁
2、盡量使用連表查詢,而不是使用子查詢
3、刪除資料或者修改資料的時候盡量使用主鍵作為條件
4、合理建立和時候用索引
正確使用索引
1、查詢的條件字段不是索引字段,對哪乙個字段建立了索引就對哪乙個欄位做條件查詢
2、在建立索引的時候應該對區分度比較大的列進行建立
1/10以下的重複率比較適合建立索引
3、範圍
範圍越大越慢
範圍越小越快
!= 慢
like 'a%' 快
like '%a' 慢
4、條件列參與計算/使用函式
5、and 和 or
多個條件的組合,如果使用and連線,其中一列含有索引,都可以加快查詢速度
如果使用or連線,必須所有的列都含有索引,才能加快查詢速度
6、聯合索引 (最左字首原則)必須帶這最左邊的列作為條件,從出現範圍開始整條索引失效
(id,name,email)
select * from s1 where id = 1800000 and name = 'eva' and email = 'eva1800000@oldboy';
select * from s1 where id = 1800000 and name = 'eva';
select * from s1 where id = 1800000 and email = 'eva1800000@oldboy';
select * from s1 where id = 1800000;
select * from s1 where name = 'eva' and email = 'eva1800000@oldboy';
(email,id,name)
select * from s1 where id >10000 and email = 'eva1800000@oldboy';
7、條件中寫出來的資料型別必須和定義的資料型別一致
select * from biao where name = 666 # 不一致
8、select的字段應該包含order by的字段
select name,age from 表 order by age 比較好
select name from 表 order by age 不好
資料庫使用注意事項
1.建表時表名要規範,前面加上 標誌的字首t 類似的,檢視字首v 儲存過程字首p 函式字首f 各個單詞用 分割,形如 t house log,字段採用小駝峰命名法,形如 creatername,欄位要選擇合適的型別,並指定恰當的長度,不可太長也不可太短 欄位為字串時一定要指定長度,不要用預設的var...
iostream使用時注意事項
標準io庫在3個頭檔案中定義 iostream是從流中讀寫,fstream是從檔案的讀寫,而sstream是從字串中去讀寫。io物件有乙個很重要的特點,就是不能複製或者賦值。這意味兩點 第一,io物件不能儲存在容器中,第二,形參或者函式的返回值也不能是io型別。如果需要傳遞io物件,則需要使用引用。...
Selectors使用時注意事項
1.serversocketchannel和socketchannel必須配置成非阻塞的 2.每次輪詢後,得到selectionkey後,必須從選擇集裡remove掉 iteratorkeys selector.selectedkeys iterator while keys.hasnext 3.如...