美文网首页
mysql从零开始第一篇

mysql从零开始第一篇

作者: Bili_bo | 来源:发表于2018-08-09 21:53 被阅读0次

    在此之前,默认以安装好mysql

    首先连接数据库 mysql -u root -p,然后输入密码

    查看当前存在的所有数据库 show databases;

    创建数据库 create database database_name;

    删除数据库 drop database database_name;

    数据库存储引擎

    数据库存储引擎是数据库底层软件组件,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新、删除数据操作。不同的存储引擎提供不同的存储机制、索引机制、锁定水平等。mysql的核心就是存储引擎。

    mysql存储引擎简介

    mysql提供了多个不同的存储引擎,包括处理事务安全表的引擎和处理非事务安全表的引擎。在mysql中,可以对每张表使用不同的存储引擎。mysql5.7支持的存储引擎有InnoDB,MyISAM、Memory、Merge、Archive、Federated、CSV、BLACKHOLE等,使用show engines查看系统支持的引擎类型。

    InnoDB存储引擎

    InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁和外键。是mysql5.5.5之后(之前是myisam),mysql的默认存储引擎.InnoDB的主要特性如下:

    1、InnoDB给mysql提供了具有提交、回滚和崩溃恢复的事务安全(ACID兼容)存储引擎,InnoDB锁定行级时,能给select语句提供一个非锁定读。

    2、InnoDB是为处理巨大数据量的最大性能设计

    3、InnoDB存储引擎完全与mysql服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。InnoDB将它的表和索引存在一个逻辑表空间中,表空间可以包含数个文件。而MyISAM表中的每个表被存放在分离的文件中。

    4、InnoDB支持外键完整性约束,如果没有在表定义时指定主键,InnoDB会为每一行生成一个ROWDB,并以此作为主键。

    5、InnoDB被用在众多需要高性能的大型数据库站点。InnoDB不创建目录,使用InnoDB时,mysql将在mysql数据目录下创建一个ibdatal的10MB自动扩展的数据文件,以及二个名为ib_logfile0和ib_logfile1的5MB大小的日志文件。

    MyISAM存储引擎

    MyISAM基于ISAM存储引擎,并对其进行扩展。它是在web、数据仓储等环境下最常使用的存储引擎之一。MyISAM拥有较高的插入、查询速度,但不支持事务,MyISAM的主要特性如下:

    1、大文件(达63位文件长度)在支持大文件的文件系统和操作系统上被支持

    2、当删除、更新、插入操作混合使用的时候动态尺寸的行产生更少碎片。

    3、每个MyISAM表的最大索引数是64,可以通过重新编译来改变。每个索引最大的列数是16个

    4、最大的键长度是1000B。也可以通过编译来改变

    5、BLOG和TEXT列可以被索引

    6、NULL值被允许在索引的列中

    7、所有的数字键值以高字节优先被存储,以允许一个更高的索引压缩

    8、每个表都有一个AUTO_INCREMENT列的内部处理。MyISAM为INSERT和UPDATE操作自动更新这一行。这使的AUTO_INCREMENT列更快

    9、可以把数据文件和索引文件放在不同的目录

    10、每个字符列可以有不同的字符集

    11、VARCHAR可以固定或动态记录长度

    12、VARCHAR和CHAR列可以多达64KB

    使用MyISAM引擎创建数据库,将生产三个文件。文件的名字以表的名字开始,扩展名指出文件类型:frm文件存储表定义,数据文件的扩展名为.MYD,索引文件的扩展名为.MYI

    MEMORY存储引擎

    MEMORY存储引擎将表中的数据存储到内存中,为查询和引用其他表数据提供快速访问。主要特性如下:

    1、MEMORY表的每个表可以有多达32个索引,每个索引16列,以及500B的最大键长度

    2、MEMORY存储引擎执行HASH和BTREE索引

    3、可以在一个MEMORY表中有非唯一键

    4、MEMORY不支持BOLG或TEXT列

    5、MEMORY支持AUTO_INCREMENT列和包含NULL的值的列索引

    6、MEMORY表在所有客户端之间共享

    7、MEMORY表内容被存在内存中,内存是MEMORY表和服务器在查询处理时的空闲中创建的内部表共享

    8、当不再需要MEMORY表中的内容时,要释放被MEMORY表使用的内存,应该执行delete from 或者truncate table 或者删除整个表drop table

    存储引擎的选择

    如果要提供提交、回滚和奔溃恢复能力的事务安全能力,并要求实现并发控制,InnoDB是个不错的选择。如果数据表主要用来插入和查询记录,则MyISAM引擎能提供较高的处理效率,如果只是临时的存放数据,数据量并不大,并且不需要较高的数据安全性,可以选择将数据保存在内存中的MEMORY引擎,如果只有insert和select操作,可以选择archive引擎,archive支持高并发的插入操作,但本身并不是事务安全的,所以非常适合存储归档数据。如记录日志信息

    相关文章

      网友评论

          本文标题:mysql从零开始第一篇

          本文链接:https://www.haomeiwen.com/subject/bbacbftx.html