資料庫面試題(mysql,nosql)
阿新 • • 發佈:2018-12-24
//2015年5月1日
一、索引
聚集索引、非聚集索引
前者B樹葉子節點包含資料,後者葉子節點包含資料地址
聚集索引優點:提升IO密集負載效能;缺點:插入代價高
索引缺點:維護索引耗時;佔用空間大
建索引須知:建在where,group by,排序等列上;不建在性別等少數類別的列上
建索引不一定加速:索引沒有查詢所需欄位
一年後DB變慢了:答題方向是cpu、磁碟、記憶體
二、為什麼有Nosql
增加欄位需要-->無格式
高併發需要-->轉向記憶體
橫向拓展需要-->以前是分庫分表
關鍵:傳統資料庫需要“關係”,所有表存在同一臺伺服器中,是一個單機系統。
而不使用關係,每條資料獨立儲存
Nosql不需要:資料庫一致性要求、讀寫的實時性、複雜sql查詢
三、Nosql的shard(一致性雜湊)
複製,橫向拓展,只支援更多的讀請求;
分片,支援更多的讀、寫請求;
如果把日期設為分片,則不能享受併發性的寫請求;
四、mongodb與redis
完全不同的東西。
mongodb:最像關係型資料庫的nosql。相比redis,只是快取了熱點資料在記憶體
redis:in-memory;豐富的資料結構;只要是為了併發性;一般作為快取
五、資料庫的引擎
六、資料庫的鎖