1、資料庫優化
jdbc程式設計方案時,用preparedstatement一般來說比statement效能高。
如果程式能夠保證資料的完整性,那在設計資料時就可以去掉外來鍵。因為有外來鍵約束會影響插入和刪除效能。
表中適當冗餘
sql語句全部大寫
在表上建立索引,對查詢效能有改進。
2、優化sql查詢資料
1)用索引提高效率
2)選擇最有效率的表名順序
3)where子句中的連線順序
4)select子句中避免使用*符號,需要寫全查詢的字段列名
3、事務
1)事務是資料庫操作的最小工作單元,是作為單個邏輯工作單元執行的一系列操作,這些操作作為乙個整體向系統提交,要麼都執行,要麼都不執行。事務是一組不可再分割的操作集合。
2)事務四個特性(acid)
原子性,一致性,隔離性,永續性
3)隔離級別
讀未提交,讀提交,可以重複讀,序列化
4、資料庫中,資料型別char與varchar2的區別:
char表示的是固定長度,所佔儲存空間為定義時的大小,資料量較大的時候以char欄位為查詢條件時,查詢得快一些。
varchar2表示的是實際長度的資料型別,所佔儲存空間為實際大小,前提是不超過定義時的長度,如果儲存的字段不是定長的,用varchar2好一些。
5、判斷查詢sql的效能高低
1)簡單的通過檢視執行sql語句的執行時間
2)通過檢視資料庫提供的語句執行計畫來分析,例如檢視執行計畫對應的cost值,值低的執行計畫要好一些。
6、資料庫死鎖及其解鎖
1)如果資料庫中有事務未提交,又開啟乙個視窗去提交乙個新的事務則可能會產生資料庫鎖。
2)解鎖方式:
a,結束當前的session會話,自動解鎖。
b,利用dba許可權強行關閉執行lock操作的session
7,處理併發資料
資料庫操作是通過加鎖的概念來確保併發資料操作下事務的完整性和資料庫的一致性。
資料庫主要有共享鎖和排他鎖。
排他鎖:當你在修改資料的時候別人也可以檢視,但是他不能修改資料提交,只能優先你的操作。等你向資料庫提交了資料之後他才能知曉增刪改的操作。
共享鎖:你和另外乙個使用者可以同時共享資料(檢視),但是你和他都不能修改。
8,delete from table 與 truncate table的區別,以及drop table
1)truncate是資料定義語音ddl做的修改,是不能回滾的,不可恢復的操作。
delete是資料操作語言dml,刪除是要把資料寫入系統回滾段中以便恢復時使用。
2)兩者都是刪除表中的資料,而不會影響到表的結構和定義。
3)使用drop的話就會刪除表的結構。
9,union和union all的區別
union在進行表連線後會篩選掉重複的記錄,對所產生的結果集進行排序運算,刪除重複的記錄再返回結果。
union all只是簡單的將兩個結果合併後就返回。
從效率上說,union all要比union快很多。如果可以確認合併的兩個結果集中不包含重複的資料的話,那麼就使用union all
10,jdbc訪問資料庫的步驟
1)載入jdbc驅動
2)與資料庫建立連線
3)傳送sql語句,並得到返回結果
4)處理返回結果
5)關閉資源。
11,大資料量下的分頁解決方法
mysql的分頁方法:
string sql=「select * from students order by id limit」+pagesize*(pagenum-1)+","+pagesize;
12,建立索引的作用和索引分類
作用:通過使用索引,大大提高資料庫的檢索速度,改善資料庫效能。
索引分類:
唯一索引,主鍵索引,聚集索引,非聚集索引,復合索引,全文索引
13,儲存過程,及其優缺點
儲存過程是一組為了完成特定功能的sql語句集,是由流程控制和sql語句書寫的命名語句塊,經編譯和優化後儲存在資料庫伺服器中,應用程式使用時只要呼叫即可。可以通過指定儲存過程的名字並給出引數來呼叫。
儲存過程的優點:
良好的安全性,執行速度快效率高,減少網路流量,模組化程式設計
儲存過程的缺點:
除錯比較麻煩,移植問題,**可讀性差。
14,儲存過程和sql的區別
儲存過程可以包含資料操作語音,邏輯和呼叫函式等,它又分為系統儲存過程和使用者自定義的儲存過程。
sql指結構化查詢語音,是一種ansi的標準計算機語音。
15,建立檢視:
create view 檢視名 as