zoukankan      html  css  js  c++  java
  • 数据库简介

    数据库的作用

    #解决了操作文件的效率和便捷问题
    #解决了多个服务同时使用数据的一致性问题
    #解决了安全的问题
    #解决了并发问题
    

    数据库的分类

    #关系型数据库:mysql,oracle,sqlserver,sqllite,accesse
    #非关系型数据库(存储数据快):redis,mongodb,memcache(内存级别)
    

    MYSQL数据库

    MYSQL操作语言分类

    1、DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
    2、DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT
    3、DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE
    

    Mysql存储引擎(了解)

    数据库的作用

    #解决了操作文件的效率和便捷问题
    #解决了多个服务同时使用数据的一致性问题
    #解决了安全的问题
    #解决了并发问题
    

    数据库的分类

    #关系型数据库:mysql,oracle,sqlserver,sqllite,accesse
    #非关系型数据库(存储数据快):redis,mongodb,memcache(内存级别)
    

    MYSQL数据库

    MYSQL操作语言分类

    1、DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
    2、DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT
    3、DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE
    

    Mysql存储引擎(了解)

    • 存储引擎的概念

      1:存储引擎的概念是Mysql才里才有的,不是所有的关系型数据库都有存储引擎这个概念
      2:存储引擎就是在如何存储数据、提取数据、更新数据等技术方法的实现上,底层的实现方式不同,那么就会呈现出不同存储引擎有着一些自己独有的特点和功能,对应着不同的存取机制。
      3:其实MySQL支持多种存储引擎,每种引擎有着一些自己独特的功能,用户在使用的时候,可以根据自己的业务场景来使用不同的存储引擎,其中MySQL最常用的存储引擎为:MyISAM和InnoDB。
      
    • Mysql工作流程

    • InnoDB引擎

      InnoDB引擎
              介绍:InnoDB引擎是MySQL数据库的另一个重要的存储引擎,正称为目前MySQL AB所发行新版的标准,被包含在所有二进制安装包里。和其他的存储引擎相比,InnoDB引擎的优点是支持兼容ACID的事务(类似于PostGreSQL),以及参数完整性(即对外键的支持)。Oracle公司与2005年10月收购了Innobase。Innobase采用双认证授权。它使用GNU发行,也允许其他想将InnoDB结合到商业软件的团体获得授权。
      
      InnoDB引擎特点:
              1.支持事务:支持4个事务隔离界别,支持多版本读。
          		四大特点:原子性,隔离性,持久性,一致性*****
              2.行级锁定(更新时一般是锁定当前行):通过索引实现,全表扫描仍然会是表锁,注意间隙锁的影响。
              3.读写阻塞与事务隔离级别相关(有多个级别,这就不介绍啦~)。
              4.具体非常高效的缓存特性:能缓存索引,也能缓存数据。
              5.整个表和主键与Cluster方式存储,组成一颗平衡树。(了解)
              6.所有SecondaryIndex都会保存主键信息。(了解)
              7.支持分区,表空间,类似oracle数据库。
              8.支持外键约束,不支持全文索引(5.5之前),以后的都支持了。
              9.和MyISAM引擎比较,InnoDB对硬件资源要求还是比较高的。
              
              小结:三个重要功能:Supports transactions,row-level locking,and foreign keys
      
    • MyISam引擎

      MyISAM引擎调优精要
              1.设置合适的索引(缓存机制)(where、join后面的列建立索引,重复值比较少的建索引等)
              2.调整读写优先级,根据实际需求确保重要操作更优先执行,读写的时候可以通过参数设置优先级。
              3.启用延迟插入改善大批量写入性能(降低写入频率,尽可能多条数据一次性写入)。
              4.尽量顺序操作让insert数据都写入到尾部,较少阻塞。
              5.分解大的操作,降低单个操作的阻塞时间,就像操作系统控制cpu分片一样。
              6.降低并发数(减少对MySQL访问),某些高并发场景通过应用进行排队队列机制Q队列。
              7.对于相对静态(更改不频繁)的数据库数据,充分利用Query Cache(可以通过配置文件配置)或memcached缓存服务可以极大的提高访问频率。
              8.MyISAM的Count只有在全表扫描的时候特别高效,带有其他条件的count都需要进行实际的数据访问。
              9.可以把主从同步的主库使用innodb,从库使用MyISAM引擎。主库写,从库读可以(不推荐,有些麻烦的地方,市场上有人这么用)
      
    • 区别和特点

  • 相关阅读:
    Kafka官方文档翻译——实现
    什么是分布式消息中间件?
    Kafka官方文档翻译——设计
    Kafka官方文档翻译——简介
    Zore copy(翻译《Efficient data transfer through zero copy》)
    Netty轻量级对象池实现分析
    记一次查内存异常问题(续《记一次Web应用CPU偏高》)
    记一次Web应用CPU偏高
    Hive DDL DML SQL操作
    Memcache入门
  • 原文地址:https://www.cnblogs.com/luckinlee/p/11621116.html
Copyright © 2011-2022 走看看