關係型數據庫---指南

一、思惟導圖    mysql

 

            

二、如何設計一個關係型數據庫sql

      

      2.1  首先是物理存儲數據庫

      2.2  其次是程序方面的邏輯管理:windows

            存儲管理、緩存、索引管理、鎖管理...緩存

三、索引模塊數據結構

      3.1  爲何要使用索引工具

            避免去全表掃描、提高查詢效率;優化

      3.2  什麼信息能夠做爲索引spa

            主鍵、惟一鍵..等能做爲區分數據的字段;設計

      3.3  索引的數據結構

              a,使用二叉查找樹進行二分查找

                  

                  

 

              b,使用B樹進行查找

                  

 

              c,使用B+樹進行查找

                    

 

              d,使用hash索引進行查找

                    

      3.4  如何定位並優化慢查詢SQL

            a,根據   慢日誌  定位慢查詢SQL

                使用SQL語句查看    慢日誌是否開啓、查找慢日誌存儲位置、SQL執行多長時間被記錄:

                    show variables like '%quer%';

                    

                    設置慢查詢日誌開啓

                        set global slow_query_log=on;

                    設置SQL查詢時長

                        set global log_query_time=1;

                    【windows經過mysql.ini可永久設置】

                查詢  本次會話  慢查詢的數量:

                    show status like '%slow_queries%';

            b,使用explain工具分析SQL

                explain 慢查詢的SQL語句;

            c,修改SQL,儘可能讓SQL使用索引

      3.5  索引是創建的越多越好麼

            不是

             a,數據量較小的表不建議創建索引,使用索引會形成額外的開銷;

             b,數據表更須要維護索引; 

             c,索引須要額外的存儲空間;  

四、鎖模塊

      4.1  MyISAM與InnoDB的區別

            MyISAM默認支持  表級鎖,不支持行級鎖;

            InnoDB支持表級鎖、行級鎖;  

五、SQL語法

      5.1  group by

      5.2  having

            一般與group by配合使用;

            where過濾行,having過濾組;

相關文章
相關標籤/搜索