数据库--mysql引擎详情

关系型数据库:sqllite,   db2,   oracle,   access,   sql,   server,   MySQL, 

非关系型数据库:mongodb,   redis,   memcache,   nosql


版本问题:一般公司如果有一些旧的项目都是用的老版本项目MySQL5.5-5.6,新项目一般都是7.0了

# 用的公司自己搭的环境5.6  5.7   5.5  7.0    公司的时候自己问dba要

# 自己搭建的环境,新版本功能更强大,更完善,但是也可能有一些坑,因为5.6用多了


项目使用什么存储引擎:

# innodb(5.6之后默认引擎)------>两个文件(data:数据+索引, frame:表结构)

   1.用于事务处理应用程序,支持外键和行级锁,如果应用对事务的完整性有比较高的需求,在并发的条件下要求

   数据的一致性,数据更多的是更新和删除操作,那么innodb比较适合,

   2.innodb除了有效地降低由删除和更新导致的锁定,还可以确保事务的完整性提交和回滚,对于类似计费系统

   或者财务系统等对数据准确要求性比较的高的系统都很适合

# myisam(5.5之前默认引擎)----->三个文件(data:数据,frame:表结构,存储索引))

    1.支持表级锁,查询和插入都非常快

    2.如果应用是读操作和插入操作,很少的更新和删除操作,并且对事务的完整性,并发性要求不高,就可以用myisam

    3.没有外键约束

# memory

   内存级别的存储引擎, 更多的用来做缓存的,断电会消失,所以一些查询较高的数据,而且丢失也不影响正常运行的情况合适

   例如银行的输入密码的操作

# blackhole

   用来做大数据的分流的


怎么使用存储引擎

mysql> create table s(id int(),name varchar(50)) ENGINE=MyISAM;

mysql> create table s(id int(),name varchar(50)) ENGINE=InnoDB;

mysql> alter tabel s engine=innodb

2.在配置文件中修改

[mysqld]

default-storage-angine=INNODB


数据类型:

char和varchar的区别:

:char定长查询速度快,而且写入的速度快,但是varchar节省空间,超出字符就报错

非空加唯一多个的话,默认使用是第一个


索引问题:

发布了23 篇原创文章 · 获赞 14 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/hgdl_sanren/article/details/87995238