关系型数据库---指南

一、思惟导图    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过滤组;

相关文章
相关标签/搜索