摘要:
二、Memcached緩存穿透、緩存雪崩 1、 緩存雪崩 可能是數據魏加載到緩存中,或者緩存同一時間大面積失效,導致大量請求去數據庫查詢的過程,數據庫過載,崩潰。 解決方法: 1 采用加鎖計數,使用合理的隊列數量來避免緩存失效時對數據庫造成很大的壓力,限制去數據庫查詢數量,降低了系統吞吐量。 2 分
閱讀全文
摘要:
一、Redis 特點 1、Redis 是一個基于內存的高性能key-value數據庫, 2、Redis最大的魅力是支持保存多種數據結構,此外單個value的最大限制是1GB,不像 memcached只能保存1MB的數據,支持list,集合等數據類型。 3、Redis也可以對存入的Key-Value設
閱讀全文
摘要:
一、redis持久化 1 RDB持久化(定redis的數據定時dump到磁盤上的RDB持久化)RDB持久化是指在指定的時間間隔內將內存中的數據集快照寫入磁盤,實際操作過程是fork一個子進程,先將數據集寫入臨時文件,寫入成功后,再替換之前的文件,用二進制壓縮存儲。 2 AOF(append only
閱讀全文
摘要:
一、Redis事務原理分析 在Redis的事務里面,采用的是樂觀鎖,主要是為了提高性能,減少客戶端的等待。由幾個命令構成:WATCH, UNWATCH, MULTI, EXEC, DISCARD。通過WATCH,可以實現CAS操作。使用WATCH監聽一些鍵,然后去檢查鍵的值,然后根據鍵的值來決定是否
閱讀全文
摘要:
一 索引原理機制 1 索引類型 : B-tree索引,哈希索引。 2 索引的本質: 索引是一種數據結構,類似于查字典一樣。 二、數據表設計: 為了保證數據庫的一致性和完整性,在邏輯設計的時候往往會設計過多的表間關聯,盡可能的降低數據的冗余。(例如用戶表的地區,我們可以把地區另外存放到一個地區表中)如
閱讀全文
摘要:
轉載https://blog.csdn.net/suifeng3051/article/details/52669644 一、摘要 本文以MySQL數據庫為研究對象,討論與數據庫索引相關的一些話題。特別需要說明的是,MySQL支持諸多存儲引擎,而各種存儲引擎對索引的支持也各不相同,因此MySQL數據
閱讀全文
摘要:
最左前綴匹配原則 主鍵外檢一定要建索引 對 where,on,group by,order by 中出現的列使用索引 盡量選擇區分度高的列作為索引,區分度的公式是count(distinct col)/count(*),表示字段不重復的比例,比例越大我們掃描的記錄數越少,唯一鍵的區分度是1,而一些狀
閱讀全文
摘要:
在MySQL中,索引屬于存儲引擎級別的概念,不同存儲引擎對索引的實現方式是不同的,本文主要討論MyISAM和InnoDB兩個存儲引擎的索引實現方式。 5.1 MyISAM索引實現(MyISAM 分成3個文件,表定義文件.FRM,數據文件.MYD,索引文件.MYI,索引葉子節點保存數據的地址) MyI
閱讀全文
摘要:
看到一篇非常全面的SQL優化文章,在開發的工作中往往不考慮性能上的缺失(在一開始的時候數據量不大也看不出速度上的區別)。但寫的越多越應該規范一下寫法。 原文鏈接:http://www.jfox.info/SQL-you-hua.html By Lee - Last updated: 星期五, 五月
閱讀全文
摘要:
一、電商秒殺系統的設計與實現 1 秒殺系統的應用特征 1 請求量大,請求高并發; 2 用戶瞬間活躍量高,要求系統響應快; 3 秒殺商品少,只有少數用戶能夠買到。 2 電商秒殺系統的設計設計架構 采用分層架構,各層獨立開發,獨立部署在各層服務集群,應用層與服務層通過zookeeper進行分布式服務協作
閱讀全文