MySQL数据库入门到精通(进阶篇)

1.存储引擎

              存储引擎就是存储数据,建立索引,更新/查询数据等技术的实现方式。存储引擎是基于               表的,而不是基于库的,所以存储引擎也可被称为表类型

           InnoDB
                 InnoDB是一种兼顾高可靠性和高性能的通用存储引擎,在mysql5.5之后,InnoDB是默            认的mysql存储引擎
                特点:DML操作遵循ACID模型,支持事务;
                          行级锁,提高并发访问性能;
                          支持外键 FOREIGN KEY约束,保证数据的完整性和正确性;
                文件:xxx.ibd
            MyISAM
                    MyISAM是早期mysql早期的默认存储引擎
                特点:不支持事务,不支持外键
                          支持表锁,不支持行锁
                          访问速度快
                文件:xxx.sdi:存储表结构信息
                           xxx.MYD:存储数据
                           xxx.MYI:存储索引
            Memory
                   Memory引擎的表数据时存储在内存中的,由于受到硬件问题,
            或断电问题的影响,只能将这些表作为临时表或缓存使用
                  特点:内存存放
                            hash索引(默认)
                  文件:xxx.sdi:存储表结构信息

                

        
    2.索引
              索引是帮助mysql高效获取数据的数据结构(有序)
              优点:提高数据检索的效率,降低数据库的IO成本
          通过索引列随数据进行排序,降低数据排序的成本,降低CPU的消耗 

               缺点:索引列也是要占用空间的,索引大大提高了查询效率,

                        同时也降低了更新表的速度
                        如对表进行insert,update,delete时,效率降低
         2.1.索引结构

                     二叉树缺点:顺序插入时,会形成一个链表,查询性能大大降低
                大数据量情况下,层级较深,检索速度慢
                    红黑树:大数据量情况下,层级较深,检索速度慢
                    B+Tree 相对于B-Tree区别
                        所有的数据都会出现在叶子节点
                        叶子节点形成一个单向链表
                    hash :hash索引就是采用一定的hash算法,将键值换算成新的
                                HASH值,映射到对应的槽位上,然后存储在hash表中
                                如果两个或多个键值,映射到一个相同的槽位上,他们就会产生hash冲突
                        (也称hash碰撞)通过链表来解决
                    特点:查询效率高,通常只需要一次检索就可以了,效率通常要高于B+Tree索引
              2.1.1.为什么InnoDB存储引擎选择使用B+Tree索引结构
                相对于二叉树,层级更少,搜素效率高;
                对于B-Tree,无论是叶子节点还是非叶子节点,都会保存数据,
                这样导致一页中存储的键值减少,指针跟着减少,要同样保存大量数据
                只会增加树的高度,导致性能降低
         2.2索引分类:
                主键索引   针对与表中主键创建的索引
                唯一索引   避免同一个表中某数据列中的值重复
                常规索引   快速定位特定索引
                全文索引   全文索引查找的是文本中的关键字,而不是比较索引中的值
                 聚集索引:将数据存储与索引存放到了一块,索引结构的叶子节点保存了行数据
                 二级索引:将数据与索引分开存储,索引结构的叶子节点关联的是对应的主键

                

        
            索引语法:
                创建索引:
            create index idx_表名_字段名  on  表中的字段

                

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值