首先理解mysql时间存储类型,与使用场景 一些帮助理解的资料: 摘自:MySQL如何存储时间datetime还是timestamp MySql中关于日期的类型有Date/Datetime/Timestamp三种类型. MySQL 的默认 DATE 字段格式是 YYYY-MM-DD.支持的范围是 1000-01-01 到 9999-12-31. DATETIME 是一个结合日期和时间的类型,并保存数据为 YYYY-MM-DD HH:MM:SS 格式.它允许的范围从 1000-01-01 00:0…
索引就好象一本字典的目录.凭借字典的目录,我们可以非常迅速的找到我们所需要的条目.数据库也是如此.凭借Oracle数据库的索引,相关语句可以迅速的定位记录的位置,而不必去定位整个表. 虽然说,在表中是否创建索引,不会影响到Oracle数据库的使用,也不会影响数据库语句的使用.这就好像即使字典没有目录的话,用户仍然可以使用它一样.可是,若字典没有目录,那么可想而知,用户要查某个条目的话,其不得不翻遍整本字典.数据库也是如此.若没有建立相关索引的话,则数据库在查询记录的时候,不得不去查询整个表.当表…
1.MyISAM:默认表类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法.不是事务安全的,而且不支持外键,如果执行大量的select,insert MyISAM比较适合. 2.InnoDB:支持事务安全的引擎,支持外键.行锁.事务是他的最大特点.如果有大量的update和insert,建议使用InnoDB,特别是针对多个并发和QPS较高的情况. 一.表锁差异 MyISAM:…
MySQL数据类型选择 一 .选择原则 更小的通常更好:一般情况下选择可以正确存储数据的最小数据类型.越小的数据类型通常更快,占用磁盘,内存和CPU缓存更小. 简单就好:简单的数据类型的操作通常需要更少的CPU周期.例如:整型比字符操作代价要小得多,因为字符集和校对规则(排序规则)使字符比整型比较更加复杂. 尽量避免NULL:尽量制定列为NOT NULL,除非真的需要NULL类型的值.因为可能为NULL列使得索引,索引统计和值比较都更复杂.可为NULL的列会使用更多的存储空间,在MySQL里也需…
一.MySQL数据类型选择原则 更小的通常更好:一般情况下选择可以正确存储数据的最小数据类型.越小的数据类型通常更快,占用磁盘,内存和CPU缓存更小. 简单就好:简单的数据类型的操作通常需要更少的CPU周期.例如:整型比字符操作代价要小得多,因为字符集和校对规则(排序规则)使字符比整型比较更加复杂. 尽量避免NULL:尽量制定列为NOT NULL,除非真的需要NULL类型的值.因为可能为NULL列使得索引,索引统计和值比较都更复杂.可为NULL的列会使用更多的存储空间,在MySQL里也需要特殊处…
MySQL索引分类 1.主键索引:设定为主键后数据库会自动建立索引,innodb为聚簇索引 语法: 随表一起建索引: CREATE TABLE customer (id INT(10) UNSIGNED AUTO_INCREMENT ,customer_no VARCHAR(200),customer_name VARCHAR(200), PRIMARY KEY(id) ); unsigned (无符号的) 使用 AUTO_INCREMENT 关键字的列必须有索引(只要有索引就行). CREAT…
数据库的备份是极其重要的事情.如果没有备份,遇到下列情况就会抓狂: UPDATE or DELETE whitout where… table was DROPPed accidentally… INNODB was corrupt… entire datacenter loses power… 从数据安全的角度来说,服务器磁盘都会做raid,MySQL本身也有主从.drbd等容灾机制,但它们都无法完全取代备份.容灾和高可用能帮我们有效的应对物理的.硬件的.机械的故障,而对我们犯下的逻辑错误却无…
我们怎么选择合适的引擎?这里简单归纳一句话:"除非需要用到某些InnoDB不具备的特性,并且没有其他办法可以替代,否则都应该优先选择InnoDB引擎." 除非万不得已,否则不建议混合使用多种存储引擎,否则可能带来一系列复杂的问题以及一些潜在的BUG. 使用不同引擎考虑的几大因素:    1.事务            如果需要事务支持,那么InnoDB或者XtraDB目前最稳定.如果不需要事务且主要是SELECT和INSERT操作,MyISAM是不错的选择. 2.备份         …
原文链接:http://nettedfish.sinaapp.com/blog/2013/05/31/choose-suitable-backup-strategy-for-mysql/ 数据库的备份是极其重要的事情.如果没有备份,遇到下列情况就会抓狂: UPDATE or DELETE whitout where… table was DROPPed accidentally… INNODB was corrupt… entire datacenter loses power… 从数据安全的角…
(1.1)mysql 选择合适的数据类型 1.char与varchar [1.1]char 在内容未满定义长度时,做空格填充,且字符串末尾空格会被截断:超出定义长度也会被截断.  如:char(4)    'abcde' => 'abcd' [1.2]varchar 在内容未满定义长度时,内容是多少就占多少,以\0 为系统自动加上的默认结束符.额外多占一个字节. 2.浮点与定点(float/decimal) [2.1]浮点:当插入数值超过浮点定义时设置的精度时,会四舍五入截断. [2.2]定点:…