JDBC :java數(shù)據(jù)庫連接老虫,是一種用于執(zhí)行SQL語句的java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問黍衙,它由一組用java語言編寫的類和接口組成冕象。因為寫的代碼太多已經(jīng)淘汰。
1.Mybatis :沒有緩存處理龟梦,沒有事物(結(jié)合Spring 的事物處理方式)
2.Hibrenate: 加入了緩存管理隐锭,每次數(shù)據(jù)庫取用時會查看緩存中是否已經(jīng)有了,有了將不再從數(shù)據(jù)庫中獲取
3.數(shù)據(jù)庫設(shè)計计贰,不使用外鍵钦睡,因為外鍵擴展性太小。(使用事物等的多表查詢)
4.自增主鍵 數(shù)據(jù)庫給你做好了索引躁倒,有些時候查詢某些字段的時候荞怒,如果數(shù)據(jù)值變化大的時候手動建索引(B+樹)洒琢;索引是查詢兩次,先查詢索引褐桌,再查詢數(shù)據(jù)庫衰抑;插入的時候也是兩次,更新索引荧嵌,插入數(shù)據(jù)庫
5.一張MySQL 數(shù)據(jù)庫的表行數(shù)1kw 以內(nèi)是最好的 (經(jīng)驗值)
當(dāng)涉及一張表放不開多表的時候停士,通過將id/* 取余之后的值分表
6.redis 遠程數(shù)據(jù)緩存 ,緩存單獨的一個服務(wù) RPC 保持數(shù)據(jù)庫跟緩存的一致性完丽,所以每次的存儲數(shù)據(jù)是緩存跟數(shù)據(jù)庫的同時更新
- 數(shù)據(jù)的查詢 redis的讀取,要批量查詢拇舀,減少數(shù)據(jù)庫 redis的鏈接
9.一致性 高可用性 高擴展性
- 多線程時的數(shù)據(jù)問題 (盡量減少全局變量逻族,或者static的變量) 加鎖 synchronized redis Mysql 已經(jīng)加鎖了