
Mysql
文章平均质量分 59
Li-X
一直向前看,做的更好!
展开
-
Mysql存储引擎
Mysql5.0以上,InnoDB是mysql的默认引擎,它是支持事务的,而MyISAM是不支持事务的。InnoDB:还支持外键,自增,InnoDB表示基于聚簇索引建立的。MyISAM:支持全文索引,支持压缩表,支持对整张表加锁不是针对行。除非用到某些InnoDB不具备的特性,并且没有其他办法可以替代,否则都应该优先选择InnoDB引擎。原创 2017-07-02 17:53:49 · 214 阅读 · 0 评论 -
数据中设计中的范式与反范式
设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。但是有些时候一昧的追求范式减少冗余,反而会降低数据读写的效率,这个时候就要反范式,利用空间来换时间。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式原创 2017-08-15 16:36:59 · 337 阅读 · 0 评论 -
表的垂直拆分和水平拆分
垂直拆分垂直拆分是指数据表列的拆分,把一张列比较多的表拆分为多张表通常我们按以下原则进行垂直拆分:把不常用的字段单独放在一张表;把text,blob等大字段拆分出来放在附表中;经常组合查询的列放在一张表中;垂直拆分更多时候就应该在数据表设计之初就执行的步骤,然后查询的时候用jion关键起来即可;水平拆分水平拆分是指数据原创 2017-08-15 16:42:29 · 532 阅读 · 0 评论 -
几种基本数据类型选择
浮点数与定点数1.浮点数:在mysql中一般用float,double(或real)来表示浮点数。如果插入数据的精度超过该列定义的实际精度,则插入值会被四舍五入到实际定义的精度值,然后插入,四舍五入的过程不会报错(精度不够准)。定点数:定点数实际上是以字符串形式存放的,所以精度更高,能更准确的保存数据。浮点数会出一些问题,单精度和双精度也是有差异的。涉及到金融,必须用定原创 2017-10-05 18:21:05 · 2476 阅读 · 0 评论 -
InnoDB引擎以及合适选择
InnoDB引擎1.innodb表的自动增长列插值时插入null或者0,实际插入的会是自动增长后的值。2.强制设置自动增长列的初始值,语句:alter table *** auto_increment = n;3.select LAST_INSERT_ID();查询当前线程最后插入记录使用的值。4.对于innodb,自动增长列必须是索引。如果是组合索引,也必原创 2017-10-05 18:22:45 · 293 阅读 · 0 评论 -
存储引擎的选择
表类型(存储引擎)的选择1.查询当前数据库支持的存储引擎:语句:show engines;2.可以在创建表的时候增加engine关键字,设置存储引擎。如:CREATE TABLE ai (i bigint(20) NOT NULL AUTO_INCREMENT,PRIMARY KEY (i)) ENGINE=MyISAM DEFAULT CHARSE原创 2017-10-05 18:23:43 · 352 阅读 · 0 评论