<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 將字段很多的表分解成多個表 對于字段較多的表,可以將這些數據分離出來形成新表.因為當一個表的數據量很大時,會由于使用頻率低的字段的存在而變低. 假設會員信息表存儲會員登錄認證信息,該表中有很多字段,如id/姓名/密碼/地址/電話/個人描述等....其中地址,電話,個人描述等字段并不常用,可以分離出來形成新的表. ### 創建表 ```sql create table user1 ( id ini(11) not null auto_increment, ... primary key (id) ); create table user2 ( id int(11) not null default 0, ... ) ``` ### 數據操作思路 #### 插入數據 先插入user1表數據,然后拿到id,然后再將剩余的數據和id插入user2表中 #### 查詢數據 ```sql select * from user1 left join user2 on user1.id = user2.id; ``` #### 刪除數據 可以使用觸發器 ## 添加中間表 對于需要經常聯合查詢的表,可以建立中間表以提高上查詢效率.通過建立中間表,把需要經常聯合查詢的數據插入到中間表中,然后將原來的聯合查詢改為對中間表的查詢,以此來提高查詢效率. ## 增加冗余字段 按照范式原則應該減少冗余字段,但是,合理地增加冗余字段可以提高查詢速度. 表的規范化越高,表與表之間的關系就越多,需要連接查詢的情況也就越多. ## 優化插入記錄的速度 插入數據時,影響插入速度的主要是索引/唯一索引的校驗/一次插入數據的條數. ### 插入多條語句 如果插入大量數據,建立索引會降低插入記錄的速度,回了解決這種情況,可以在插入前禁用索引,數據插入完畢后再開啟索引. > 對于空表批量導入數據,則不需要進行次操作,因為MyISAM引擎的表是在導入數據之后才建立的 #### 禁用索引 ```sql alter table 表名 disable keys; ``` #### 重新啟用索引 ```sql alter table 表名 enable keys; ``` ### 禁用唯一性檢驗 插入數據時,MySQL會對插入的記錄進行唯一性校驗.這種唯一性校驗也會降低插入記錄的速度,為了降低這種情況對速度的影響,可以在插入記錄前禁用唯一性檢驗,等到記錄插入完畢后再開啟. #### 禁用唯一性校驗 ```sql set unique_checks = 0; ``` #### 開啟唯一性校驗 ```sql set unique_checks = 1; ``` ### 使用批量插入 插入多條語句記錄時,可以使用一條一條插入,也可以使用一次插入多條,一次插入多條的速度會快過一條一條插入 ### InnoDB表優化 #### 禁用唯一性校驗 ##### 關閉 ```sql set unique_checks = 0; ``` ##### 開啟 ```sql set unique_checks = 1; ``` #### 禁用外鍵檢查 ##### 關閉 ```sql set foreign_key_checks = 0; ``` ##### 開啟 ```sql set foreign_key_checks = 1; ``` #### 禁止自動提交 ##### 關閉 ```sql set autocommit = 0; ``` ##### 開啟 ```sql set autocommit = 1; ``` ## 分析表/檢查表/優化表 ### 分析表 主要分析關鍵字的分布 ```sql analyze [local | no_write_to_binlog] table 表 [,表2...]; ``` local是no_write_to_binlog關鍵詞的別名,表示不寫入二進制日志 結果信息解釋 |參數|說明| |-|-| |Table|表示分析的表的名稱| |Op|表示執行的操作,analyze表示進行分析操作| |Msg_type|表示信息類型: 狀態status/信息(info)/注意(note)/警告warning/錯誤(error)| |Msg_text|顯示信息| ### 檢查表 主要檢查表是否存在錯誤 > option只對MyISAM類型的表有效,執行過程中會加上只讀鎖 ```sql check table 表名 [,表名...] option = {quick|fast|medium|extended|changed} [option...]... ``` |參數|說明| |quick|不掃描行| |fast|只檢查沒有被正確關閉的表| |medium|掃描行| |extended|對每行的所有關鍵字進行全面查找| |changed|只檢查上次檢查后被更改的表| ### 優化表 主要是刪除或者更新造成的空間浪費 > 對InnoDB和MyISAM類型都有效,但是只能優化表中的varchar/blob或text類新的字段 ```sql optimize [local|no_write_to_binlog] table 表名 [,表名...]; ``` local是no_write_to_binlog關鍵詞的別名,表示不寫入二進制日志
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看