記一次阿里巴巴的電話面試的經過

問了4個問題;

1、怎麼解決高併發的問題?

  • 儘量使用緩存,包括用戶緩存,信息緩存等,多花點內存來做緩存,可以大量減少與數據庫的交互,提高性能。

  • 用jprofiler等工具找出性能瓶頸,減少額外的開銷。

  • 優化數據庫查詢語句,減少直接使用hibernate等工具的直接生成語句(僅耗時較長的查詢做優化)。

  • 優化數據庫結構,多做索引,提高查詢效率。

  • 統計的功能儘量做緩存,或按每天一統計或定時統計相關報表,避免需要時進行統計的功能。

  • 能使用靜態頁面的地方儘量使用,減少容器的解析(儘量將動態內容生成靜態html來顯示)。



2、數據庫怎麼分庫分表?

    分庫降低了單點機器的負載;分表,提高了數據操作的效率

1. 垂直切分
垂直切分的依據原則是:將業務緊密,表間關聯密切的表劃分在一起,例如同一模塊的表。結合已經準備好的數據庫ER圖或領域模型圖,仿照活動圖中的泳道概念,一個泳道代表一個shard,把所有表格劃分到不同的泳道中。下面的分析示例會展示這種做法。當然,你也可以在打印出的ER圖或模型圖上直接用鉛筆圈,一切取決於你自己的喜好。

2. 水平切分

垂直切分後,需要對shard內表格的數據量和增速進一步分析,以確定是否需要進行水平切分。



3、應用的連接池怎麼設置?





4、怎麼解決數據量大的問題?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章