本篇文章為大家介紹一些有關mysql基礎知識,希望在今后會對大家有幫助。
一. char與varchar
? ? 1)char為固定空間存儲, 實際數據不夠會補夠,超出長度則截斷; varchar為不固定長度存儲,使用額外的1-2個字節來存儲長度信息。
? ? 2)char可能導致空間浪費, 但也可能有效減少空間碎片,上限255; varchar的情況相反,上限65535個字節(指定的長度表示的為字符,要考慮編碼)
二. int(x)
? ? ?x代表了int整型的最大顯示長度。 int占4個字節, 無符號最大值4294729693, 即長度為10. 因此int(11)與int(12)本質上應該沒有差別。
三. mysql的日志種類
? ? 錯誤日志: -log-err ? ? ?(記錄信息包括: 服務啟動或關閉, 運行過程的錯誤或警告, 事件調度器)
? ? 查詢日志: -log ? ? ? ? ? ?
? ? 慢查詢日志: -log-slow-queries
? ? 更新日志: log-update ?(一般都不會使用)
? ? 二進制日志: -log-bin ? (mysqlbinlog查看二進制文件)
四. show profile
? ? 用于分析sql執行的性能, 相對于explain, profile還可以查看執行的CPU/Memory使用情況。
五. 關于buffer size
? ? 對于myisam, 要設置合適的key_buffer_size大小; 因為myisam需要用到系統的緩存來緩存數據,因此需要為索引留出部分空間.
? ? 對于innodb, 要設置合適的innodb_buffer_pool_size大小; 因為innodb會把數據和索引都一起緩存起來, 該值應該相對大一些.
六. delete與optimize
? ? 如果一個表經常有insert與delete操作,應該要定期進行optimize操作,可以有效的回收空間和整理碎片.
七. 關于鎖
? ? myisam只支持表鎖; innodb支持行級鎖,它是通過在索引上加鎖來實現的,因此只有在用到索引來檢索數據時才用到行鎖,否則仍使用表鎖.
八. 索引
? ? myisam支持的索引類型包括: 普通索引(index), primary key(主鍵), 唯一性主鍵(unique key), 全文索引(full text).
? ? innodb有兩種索引: B+樹索引, ?hash索引.innodb為索引組織表.