mysql
Posted 一凡夫一俗子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql相关的知识,希望对你有一定的参考价值。
mysql(默认数据表MyISAM&InonoDB)
可以在MySQL的配置文件my.ini里设置,书里写的是 default-table-type。但是在my.ini里没有找到,而是
# The default storage engine that will be used when create new tables when
default-storage-engine=INNODB
MyISAM,成熟、稳定,易于管理。分为三种 MyISAM static、MyISAM Dynamic和MyISAM Compressed
- MyISAM static:数据列各自有定义好的“固定长度”,数据存取效率高(在修改很频繁的基础下)
- MyISAM Dynamic:数据列没有固定的长度,存储效率高;缺点:在删除的时候会产生大量的 数据碎片
- MyISAM Compressed:压缩MyISAM,占用空间少;缺点:数据小变成了只读数据表,不能修改
InnoDB,MyISAM的进化版,增加了事务、外键约束等功能;缺点:我不知道现在是否还有,毕竟时代在发展
总结:如果对 空间和时间要求高的话,就使用MyISAM;若需要 事务、外键、数据行级锁定机制,就使用InnoDB
HEAP(临时数据表){hash index 散列索引 ,优点:存取速度快}
HEAP的限制:不能使用---TEXT、---BOLB、<、>、<=、>=、AUTO_INCREMENT;只能对 not null 进行索引
书里写的 HEAP 数据表的长度在配置文件里没有找到,config_max_heap_table_size
数据列宽度(INT(4))作用和C语言里转换说明符 %4d 一样,Warning(在执行一些需要借助于临时数据表才能完成的复杂查询时,可能会造成数据的截断)
AUTO_INCREMENT
- 每个表只能有一个A_T的数据列
- select LAST_INSERT_ID()
- 如果增长到最大值的话,不会继续递增,也不会再插入数据
- 有A_T,则必须有primary key
BIT&BOOL(二进制)
FLOAT&Doule(REAL)浮点数
(m,d)m指定的是十进制数的个数,只是起显示效果;d指定的小数点后几位数字的个数(会进行四舍五入)
插入的数据会进行必要的舍入
DECIMAL(定点数)
如果四舍五入会产生差错时,使用DECIMAL。DECIMAL是使用字符串的形式来保存数据
DATE、TIME、DATATIME、YEAR、TIMETAMP
表示日期的数据类型
TIMETAMP,是在进行数据修改时,会记录最后一次修改的时间
如果不想保存此次修改的记录时间, update tablename SET col=new value,ts=ts;
如果想进行日期排版的话,使用DATA_FORMAT()
以上是关于mysql的主要内容,如果未能解决你的问题,请参考以下文章