資料庫三大正規化
第一正規化:確保每一列的原子性,如果每一列都是不可再分的最小資料單元,則滿足第一正規化
第二正規化:非主鍵列必須完全依賴於主鍵,不能只依賴於主鍵的一部分。
第三正規化:非主鍵列必須只依賴於主鍵,不能存在傳遞依賴,不依賴於其他非主鍵。
在設計資料庫結構的時候,要盡量遵守三正規化,如果不遵守,必須有足夠的理由。比如效能。事實上我們經常會為了效能而妥協資料庫的設計。
mysql中存在4個控制許可權的表,分別為user表,db表,tables_priv表,columns_priv表
儲存賬戶許可權資訊表主要有:user、db、tables_priv、columns_priv、procs_priv、proxies_priv這六張表(全域性層級許可權、資料庫層級許可權、表層級別許可權、列層級別許可權、子程式層級許可權)(procs_priv:儲存過程和函式的許可權,proxies_priv:記錄**使用者的許可權)
mysql許可權表的驗證過程為:
1.先從user表中的host,user,password這3個字段中判斷連線的ip、使用者名稱、密碼是否存在,存在則通過驗證。
2.通過身份認證後,進行許可權分配,按照user,db,tables_priv,columns_priv的順序進行驗證。即先檢查全域性許可權表 user,如果user中對應的許可權為y,則此使用者對所有資料庫的許可權都為y,將不再檢查db, tables_priv,columns_priv;如果為n,則到db表中檢查此使用者對應的具體資料庫,並得到db中為y的許可權;如果db中為n,則檢 查tables_priv中此資料庫對應的具體表,取得表中的許可權y,以此類推。
mysql索引
索引是乙個檔案,它是要佔據物理空間的。
mysql的回表查詢與索引覆蓋查詢:
mysql中分為聚集索引和非聚集索引。非聚集索引的btree葉子節點中儲存的是當行資料的pk。所以為了取到具體資料,則需要通過pk回到聚集索引裡去查詢資料。即先定位主鍵值,再根據主鍵值定位行記錄,效能相對於只掃瞄一遍聚集索引樹的效能要低一些,這就叫回表查詢,掃瞄了2次索引樹,所以效率相對較低。
覆蓋查詢:你要查詢的列是索引,並且沒有非索引的列的查詢,mysql只需要通過索引就可以返回查詢所需要的資料,而不必在查到索引之後再去查詢資料,同時也要求所查詢的字段必須被索引所覆蓋到。在explain的時候,輸出的extra資訊中如果有「using index」,就表示這條查詢使用了覆蓋索引。
mysql的innodb引擎只有b-tree型別的索引具有覆蓋索引,雜湊索引、空間索引和全文索引都沒有覆蓋索引。因為覆蓋索引必須要儲存索引列的值,而雜湊索 引、空間索引和全文索引等都不儲存索引列的值,所以mysql只能使用b-tree索引做覆蓋索引
乙個表最多只能有乙個聚簇索引,mysql中普遍使用b+tree做索引,但在實現上又根據聚簇索引和非聚簇索引而不同
事務的acid特性,事務的併發控制,事務排程,以及事務的分布式提交
一階卡爾曼學習記錄
控制系統的測量訊號總是包含測量雜訊和其他擾動訊號。傳統的卡爾曼濾波器是一種線性濾波器,能處理測量值和受控量是線性關係的濾波過程,快速過濾訊號中的白雜訊,提高控制系統的穩定性和控制精度。卡爾曼濾波是時域估計方法,能對時變 非平穩訊號 多維訊號進行處理,不需要頻域變換,採用遞推演算法,運算量小,存貯量小...
一階規則學習
受限於命題邏輯表達能力,命題規則學習難以處理物件之間的關係 relation 而關係資訊再很多任務中是很重要的,要用一階邏輯表示,使用一階規則學習。描述了樣例間關係的資料稱為關係資料 relational data 有原樣本屬性轉化而來的原子公式稱為背景知識 backgroundknowledge ...
機器學習第一階段記錄
3.20簡單記下做了什麼。找個地方坐好 還是打算用tensorflow,所以裝python,刪除pythonxy,裝3.6,聽說tf不支援3.6,就刪了重灌3.5,完成。網不行,還買了個vpn試試,先下了安裝包,在直接pip install 安裝 最簡單的tensorflow平台建好,關於cpu還是...