優化①:設計規範化表,消除資料冗餘
第一正規化:屬性(字段)的原子性約束,要求屬性具有原子性,不可再分割;
第二正規化:記錄的惟一性約束,要求記錄有惟一標識,每條記錄需要有乙個屬性來做為實體的唯一標識。
第三正規化:屬性(字段)冗餘性的約束,即任何字段不能由其他字段派生出來,在通俗點就是:主鍵沒有直接關係的資料列必須消除(消除的辦法就是再建立乙個表來存放他們,當然外來鍵除外)
如果資料庫設計達到了完全的標準化,則把所有的表通過關鍵字連線在一起時,不會出現任何資料的複本(repetition)。標準化的優點是明顯的,它避免了資料冗餘,自然就節省了空間,也對資料的一致性(consistency)提供了根本的保障,杜絕了資料不一致的現象,同時也提高了效率。
優化②:適當的冗餘,增加計算列
很多情況下會為了提高資料庫的執行效率,常常需要降低正規化標準:適當增加冗餘,達到以空間換時間的目的。
優化③:索引
索引是乙個表優化的重要指標,在表優化中占有極其重要的成分,所以將單獨寫一章」sql索引一步到位「去告訴大家如何建立和優化索引
優化④:主鍵和外來鍵的必要性
優化⑥:傳說中的『三少原則』
①:資料庫的表越少越好
②:表的字段越少越好
③:欄位中的組合主鍵、組合索引越少越好
當然這裡的少是相對的,是減少資料冗餘的重要設計理念。
優化⑦:分割你的表,減小表尺寸
優化⑧:字段設計原則
千萬級別mysql資料表優化
第一優化你的sql和索引 第二加快取,memcached,redis 第三以上都做了後,還是慢,就做主從複製或主主複製,讀寫分離,可以在應用層做,效率高,也可以用三方工具,第三方工具推薦360的atlas,其它的要麼效率不高,要麼沒人維護 第四如果以上都做了還是慢,不要想著去做切分,mysql自帶分...
MySQL千萬級資料表優化思路
本文參考知乎問答整理 喜歡這樣的論調 mysql只做簡單的事情,千萬級的表,無論怎樣優化,同樣的sql,都沒有在十萬級的表中執行效率快 因此,在設計千萬級的大表之前,要先問自己幾個問題 我們當然希望每個應用都可以這樣,但理想終歸是理想,現實中,輪到我們自己擼袖子上陣的時候,坑,大多已經是一眼忘不到底...
建立資料表和修改資料表
建立表 sql中建立和刪除資料庫物件的語句被稱為資料定義語言 data definition language,ddl 操作這些物件中資料的語句被稱為資料操作語言 data manipulation language,dml 建立語句屬於ddl,用create table命令 create temp...