數據庫事務:是指做爲單個邏輯工做單元執行的一系列操做,這些操做要麼全作,要麼全不作,是一個不可分割的工做單元。html
事務特色:面試
比較 | truncate | delete |
---|---|---|
相同點 | 刪除表中的所有行 | 不帶where字句刪除表中的所有行 |
相同點 | 刪除記錄,不刪除表定義 | 刪除記錄,不刪除表定義 |
不一樣點 | truncate比delete速度快,且使用系統和事務日誌資源少 | delete每刪除一行,並在事務日誌中爲所刪除的每行記錄一項 |
不一樣點 | truncate正常狀況返回0,中斷什麼都不返回 | delete返回刪除的行記錄數 |
做用:數據庫
優勢:編程
缺點:緩存
適合建立索引:安全
不適合建立索引:數據庫設計
對於那些在查詢中不多使用或者參考的列不該該建立索引。這是由於,既然這些列不多使用到,所以有索引或者無索引,並不能提升查詢速度。相反,因爲增長了索引,反而下降了系統的維護速度和增大了空間需求。ide
對於那些只有不多數據值(惟一性差)的列也不該該增長索引。這是由於,因爲這些列的取值不多,例如人事表的性別列,在查詢的結果中,結果集的數據行佔了表中數據行的很大比例,即須要在表中搜索的數據行的比例很大。增長索引,並不能明顯加快檢索速度。模塊化
對於那些定義爲text, image和bit數據類型的列不該該增長索引。這是由於,這些列的數據量要麼至關大,要麼取值不多。性能
DDL(Data Definition Language):數據定義語言,定義對數據庫對象(庫、表、列、索引)的操做。表明指令:CREATE、DROP、ALTER、RENAME、 TRUNCATE等
DML(Data Manipulation Language):數據操做語言,定義對數據庫記錄的操做。表明指令:INSERT、DELETE、UPDATE、SELECT等
存儲引擎是:數據庫管理系統如何存儲數據、如何爲存儲的數據創建索引和如何更新、查詢數據等技術的實現方法。MySQL的核心就是插件式存儲引擎,支持多種存儲引擎。
MyISAM
,InnoDB
,Memory
三個引擎便可,區別就是各自的Feature
不同,標✔
的標識該引擎支持對應的特性。支持的索引以下:
存儲過程是一個預編譯的SQL 語句,優勢是容許模塊化的設計,就是說只需建立一次,之後在該程序中就能夠調用屢次。若是某次操做須要執行屢次SQL ,使用存儲過程比單純SQL 語句執行要快。能夠用一個命令對象(call)來調用存儲過程。
優勢:
缺點:
鏈接方式:
鏈接方式說明:
範式:
參考資料:
實際使用:三大範式只是通常設計數據庫的基本理念,能夠創建冗餘較小、結構合理的數據庫。若是有特殊狀況,固然要特殊對待,數據庫設計最重要的是看需求和性能,需求>性能>表結構。因此不能一味的去追求範式創建數據庫
SQL查詢中各個關鍵字的執行前後順序:
from > on> join > where > group by > with > having > select > distinct > order by > limit
參考資料:《MySQL技術內幕:SQL編程 第三章查詢處理》
問題分析:從1000萬這個數字能夠定位到考察數據量特別大的狀況下如何提高查詢效率。
數據庫設計方面
數據庫I/O方面
在SQL語句方面
preparedStatement
減小查詢次數