正常情况数据是以文件的形式存储在磁盘或者内存上的。这就意味着他就会具有文件保存数据的缺点
数据库的本质是对文件内容提供基本的内容操作,不用用户手动管理
mysql本身也是一种文件系统是由两部分构成的,客户端(mysql)和服务端(mysqld),mysql数据库本身就是一套网络服务。(登录时需要ip和端口号可以看出)通常不使用数据库的时候,用户直接操作磁盘上文件里的数据,成本很高。当使用mysql,用户将sql指令通过mysql客户端递交给mysqld服务端,由服务端帮助用户操作磁盘上的数据
数据库的存储介质有以下两种:
?创建数据库的本质(database)在linux下是创建目录,建表的本质是创建文件
默认情况下配置位置如下
数据库的配置文件位置:/etc/my.cnf
数据存储位置:/var/lib/mysql(建表的话就会在当前路径下创建一个文件夹,并形成db.opt文件,可以看字符编码和校验规则,和上面的创建目录的本质对应)
当使用数据库的时候相当与进入数据库的目录。此时建表相当于在当前目录下创建文件。
引擎的作用:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术
的实现方法。
常见的引擎:Innodb,MYISAM,不同的引擎在建表时的细节有所不同
innodb:会出现两个文件.frm表结构文件,ibd表数据和索引的文件(聚簇索引),支持事务,行锁,外键,崩溃恢复,自动增量列,适合需要高级功能的数据
MYISAM:会出现三个文件,.frm表结构文件,.myd表的数据信息文件,.myi在索引文件(非聚簇索引),支持全文搜索,表锁,压缩表,缓存,更适合读密集型数据
mysql大小写不敏感
表和库名称最好带上``
通常情况下字符集和检验规则集是可以互相解释的
数据库本身是有备份的,但是是对操作语句做的备份