Some work notes in 2012 Q1

1. Mysql 分表

分表分爲水平分表和垂直分表,常用的是水平分表,通常是將一個表結構不變,數據分成兩份或者多份存在不同表中。原因是由於一個數據表數據太多,影響操作效率,所以可以根據表中某個關鍵字段進行分表,比如可以根據主鍵的區間,或者根據時間搓的區間,或者根據特定業務進行分表,目的是將一個表的數據分在兩個結構相同但是名字不同的表中,可以快速進行各種操作。

垂直分表則是將表結構分割成兩個或者多個表,通過外鍵進行連接。


2. Mysql 建立索引

mysql索引是可以用多種方式建立,常用的有Btree,hash等。多數應用使用BTree。

建立索引需要注意的是:

1. 選擇合適的key進行索引。

2. 需要根據具體業務優化進行符合索引

3. 建立索引後使用select語句的注意點。

具體可以參考:

http://www.codinglabs.org/html/theory-of-mysql-index.html

http://www.cnblogs.com/hustcat/archive/2009/10/28/1591648.html

http://www.perfgeeks.com/?p=460

http://www.linezing.com/blog/?p=664


3. CAP原理:

CAP原理:consistency,availability, Partition tolerance ,在分佈式環境中,理論說只能保證其中兩個,不能保證三個。Partition tolerance必須保證,所以consistency和availability只能保證一個,在Mysql數據庫中強調consistency,而在Nosql環境中強調availability。


4. Mongodb

一種Nosql,是基於文檔數據庫。相比於memcache這樣的kv系統,最大特點是可以建立索引,而索引的建立方法基本上和Mysql一樣,使用的是BTree。關鍵需要考慮是mongodb的一致性,可擴展性,以及併發能力,索引效率等問題。


鎖:根據mongodb官方文檔的說法,mongodb不使用傳統的鎖。

   MongoDB does not support traditional locking and complex transactions for a number of reasons:

  • First, in sharded environments, distributed locks could be expensive and slow.  Mongo DB's goal is to be lightweight and fast.
  • We dislike the concept of deadlocks.  We want the system to be simple and predictable without these sort of surprises.
  • We want Mongo DB to work well for realtime problems.  If an operation may execute which locks large amounts of data, it might stop some small light queries for an extended period of time.  (We don't claim Mongo DB is perfect yet in regards to being "real-time", but we certainly think locking would make it even harder.)

單機一致性:單機情況下,單一線程讀寫保證一致性,即一個線程自己寫的數據一定可以讀出來。不同線程不保證寫一致性,即如果發出了寫衝突,mongodb不保證寫一致性,需要用戶自己解決衝突。

多機一致性:在多機情況下,即replicaset的情況下,如果允許在secondary的機器上進行讀操作,可以會讀到stale的數據,因爲master已經被修改,而secondary可能還沒有被更新。雖然primiary到secondary的更新速度很快,但是依舊存在不一致性,目的是提高可用性。


索引:同Mysql一樣,使用BTree建立索引,效率感覺沒有Mysql高,可能Mysql在索引方面優化做的比較好。


併發:暫時沒有測試,網上數據表示不夠樂觀


參考:

一致性:

http://www.mongodb.org/display/DOCS/Atomic+Operations

http://stackoverflow.com/questions/8081629/mongodb-document-operations-are-atomic-and-isolated-but-are-they-consistent

http://www.allthingsdistributed.com/2007/12/eventually_consistent.html


5. log4j

6. webservice(cxf,axis2)

7. linux tcp tuning

8. mybatis,spring,struts.junit

發佈了81 篇原創文章 · 獲贊 22 · 訪問量 36萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章