澳门新葡萄京娱乐网站-澳门新葡萄京888官网-所有平台

热门关键词: 澳门新葡萄京娱乐网站,澳门新葡萄京888官网

SQL语句优化,MySQL存款和储蓄时间项目接收的主题

作者: MySQL数据库  发布:2019-12-22

MySQL中贮存时间平常会用datetime类型,但几天前游人如织系统也用int存款和储蓄unix时间戳,它们有怎么着分别?本身总括如下:

接上生龙活虎部分

(4卡塔尔(英语:State of Qatar)倘若不是索引列的首先局地,如下例子:可以见到就算在money上面建有复合索引,可是出于money不是索引的第一列,那么在查询中那些目录也不会被MySQL接受。

mysql> explain select * from sales2 where moneys=1 G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: sales2
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 1000
        Extra: Using where
1 row in set (0.00 sec)

(5卡塔尔(قطر‎假诺like是以%开始,可以见到即使在name上边建有目录,然则出于where条件中like的值的“%”在第一位了,那么MySQL也会使用那么些目录。

mysql> explain select * from company2 where name like‘%3’G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: company2
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 1000
        Extra: Using where
1 row in set (0.00 sec)

(6卡塔尔(英语:State of Qatar)假设列类型是字符串,但在查询时把三个数值型常量赋值给了叁个字符型的列名name,那么即便在name列上有索引,然则也并未有用到。

mysql> explain select * from company2 where name=294G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: company2
         type: ALL
possible_keys: ind_company2_name
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 1000
        Extra: Using where
1 row in set (0.00 sec)

 

  而下边包车型大巴sql语句就能够精确运用索引

mysql> explain select * from company2 where name=‘294’G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: company2
         type: ref
possible_keys: ind_company2_name
          key: ind_company2_name
      key_len: 23
          ref: const
         rows: 1
        Extra: Using where
1 row in set (0.00 sec)

在MySQL 5.7本子在此以前,且在MySQL 5.6.6版本之后(explicit_defaults_for_timestamp参数在MySQL 5.6.6开首步入)的版本中,若无设置explicit_defaults_for_timestamp=1的景况下:

int

3 查看索引使用场境

  假若索引正在干活,Handler_read_key的值将异常高,那个值代表了叁个行被索引值读的次数。

  Handler_read_rnd_next的值高则代表查询运营低效,何况应该创造目录补救。

   mysql> show status like 'Handler_read%';
  +-----------------------+-------+
  | Variable_name         | Value |
  +-----------------------+-------+
  | Handler_read_first    | 0     |
  | Handler_read_key      | 5     |
  | Handler_read_next     | 0     |
  | Handler_read_prev     | 0     |
  | Handler_read_rnd      | 0     |
  | Handler_read_rnd_next | 2055  |
  +-----------------------+-------+
   6 rows in set (0.00 sec)

 

1)在暗中认可情状下,假诺TIMESTAMP列未有出示的指明null属性,那么该列会被活动抬高not null属性(而其他品种的列若无被出示的钦赐not null,那么是同意null值的卡塔尔(英语:State of Qatar),假若往这几个列中插入null值,会活动的设置该列的值为current timestamp值。

4个字节存款和储蓄,INT的尺寸是4个字节,存储空间上比datatime少,int索引存款和储蓄空间也针锋相投不大,排序和查询作用相对较高级中学一年级丝丝

多个轻巧实用的优化措施

深入分析表的语法如下:(检查二个或四个表是或不是有不当 卡塔尔

mysql> CHECK TABLE tbl_name[,tbl_name] … [option] … option =
  { QUICK | FAST | MEDIUM | EXTENDED | CHANGED}

mysql> check table sales;
+--------------+-------+----------+----------+
| Table        | Op    | Msg_type | Msg_text |
+--------------+-------+----------+----------+
| sakila.sales | check | status   | OK       |
+--------------+-------+----------+----------+
1 row in set (0.01 sec)

优化表的语法格式:

OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [,tbl_name]

假若已经删除了表的一大学一年级些,大概只要已经对富含可变长度行的表张开了广大的改观,则要求做期限优化。这些命令能够将表中的长空碎片举办合併,但是此命令只对MyISAM、BDB和InnoDB表起效果。

mysql> optimize table sales;
+--------------+----------+----------+----------+
| Table        | Op       | Msg_type | Msg_text |
+--------------+----------+----------+----------+
| sakila.sales | optimize | status   | OK       |
+--------------+----------+----------+----------+
1 row in set (0.05 sec)

2)表中的首先个TIMESTAMP列,若无一些名null属性可能还未有点名私下认可值,也绝非钦点ON UPDATE语句。那么该列会自动被拉长DEFAULT CU奥德赛RENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP属性。

可读性极差,不可能直观的看出数据

4 常用SQL的优化

1 一大波插入数据

    当用load命令导入数据的时候,适当设置能够压实导入的进程。

  对于MyISAM存款和储蓄引擎的表,能够经过以下办法快速的导入多量的数量。

ALTER TABLE tbl_name DISABLE KEYS
loading the data
ALTER TABLE tbl_name ENABLE KEYS

DISABLE KEYS 和ENABLE KEYS 用来打开或关闭MyISAM表非独一索引的修改,能够加强速度,注意:对InnoDB表无效。

 

从未动用张开或关闭MyISAM表非独一索引:
mysql> load data infile ‘/home/mysql/film_test.txt’into table film_test2 fields terminated by “,”;
Query OK,529056 rows affected (1 min 55.12 sec)
Records:529056 Deleted:0 Skipped:0 Warnings:0

应用打开或关闭MyISAM表非独一索引:
mysql> alter table film_test2 disable keys;
Query OK,0 rows affected (0.0 sec)
mysql> load data infile ‘/home/mysql/film_test.txt’into table film_test2;
Query OK,529056 rows affected (6.34 sec)
Records:529056 Deleted:0 Skipped:0 Warnings:0
mysql> alter table film_test2 enable keys;
Query OK,0 rows affected (12.25 sec)
以上对MyISAM表的数目导入,但对此InnoDB表并不可能抓牢导入数据的频率

 

3)第叁个TIMESTAMP列之后的其余的TIMESTAMP类型的列,若无一点点名null属性,也从没点名暗中同意值,那么该列会被电动抬高DEFAULT ‘0000-00-00 00:00:00’属性。如若insert语句中尚无为该列钦点值,那么该列中插入’0000-00-00 00:00:00’,並且未有warning。

TIMESTAMP

(1)针对于InnoDB类型表数据导入的优化

因为InnoDB表的遵照主键顺序保存的,所以将导入的数量主键的顺序排列,能够使得地升高导入数据的频率。

行使test3.txt文本是按表film_test4主键存款和储蓄顺序保存的
mysql> load data infile ‘/home/mysql/film_test3.txt’into table film_test4;
Query OK, 1587168 rows affected (22.92 sec)
Records:1587168 Deleted:0 Skipped:0 Warnings:0
应用test3.txt未有别的顺序的文本(效用慢了1.12倍)
mysql> load data infile ‘/home/mysql/film_test4.txt’into table film_test4;
Query OK, 1587168 rows affected (31.16 sec)
Records:1587168 Deleted:0 Skipped:0 Warnings:0

在MySQL 5.6.6及然后的版本和MySQL 5.7事情未发生前的本子中,如若在安插文件中从不钦定explicit_defaults_for_timestamp参数,运维时error日志中会报如下警示:

时区转变 ,存款和储蓄时对前段时间的时区进行调换,检索时再调换回当前的时区。

(2)关闭唯大器晚成性效验能够升高导入效能

在导入数据前先举行set unique_checks=0,关闭唯生龙活虎性效验,在导入结束后实践set unique_checks=1,苏醒唯生龙活虎性效验,能够坚实导入功效。

当unique_checks=1时
mysql> load data infile ‘/home/mysql/film_test3.txt’into table film_test4;
Query OK,1587168 rows affected (22.92 sec)
Records:1587168 Deleted:0 Skipped:0 Warnings:0
当unique_checks=0时
mysql> load data infile ‘/home/mysql/film_test3.txt’into table film_test4;
Query OK,1587168 rows affected (19.92 sec)
Records:1587168 Deleted:0 Skipped:0 Warnings:0

[Warning] TIMESTAMP with implicit DEFAULT value is deprecated.

TIMESTAMP值不可能早于1969或晚于2037

(3)关闭自动提交能够进步导入功效

  在导入数据前先实行set autocommit=0,关闭自动提交业务,在导入截止后施行set autocommit=1,恢复生机活动提交,能够增长导入功能。

当autocommit=1时
mysql> load data infile ‘/home/mysql/film_test3.txt’into table film_test4;
Query OK,1587168 rows affected (22.92 sec)
Records:1587168 Deleted:0 Skipped:0 Warnings:0
当autocommit=0时
mysql> load data infile ‘/home/mysql/film_test3.txt’into table film_test4;
Query OK,1587168 rows affected (20.87 sec)
Records:1587168 Deleted:0 Skipped:0 Warnings:0

Please use --explicit_defaults_for_timestamp server option (see

datetime

2 优化insert语句

用尽全力选拔八个值表的insert语句,那样能够大大裁减客商与数据库的延续、关闭等消耗。

能够使用insert delayed(立时施行)语句获得越来越高的效能。

将引得文件和数据文件分别存放差别的磁盘上。

能够追加bulk_insert_buffer_size 变量值的措施来加强速度,但是只对MyISAM表使用

当从三个文本中装载一个表时,使用LOAD DATA INFILE。这么些普通比使用过多insert语句要快20倍。

documentation for more details).

以'YYYY-MM-DD HH:MM:SS'格式检索和出示DATETIME值。接济的限定为'1000-01-01 00:00:00'到'9999-12-31 23:59:59'

3 优化group by语句

若果查询包含group by但客商想要防止排序结果的损耗,则足以应用应用order by null来禁绝排序:

  如下未有运用order by null来防止排序

mysql> explain select id,sum(moneys) from sales2 group by idG
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: sales2
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 1000
        Extra: Using temporary;Using filesort
1 row in set (0.00 sec)

正如使用order by null的机能:

mysql> explain select id,sum(moneys) from sales2 group by id order by nullG
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: sales2
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 1000
        Extra: Using temporary
1 row in set (0.00 sec)

假定大家在运维的时候在布署文件中内定了explicit_defaults_for_timestamp=1,MySQL会根据如下的点子处理TIMESTAMP列:

乘胜Mysql品质特别来高,个人认为关于时间的蕴藏情势,具体怎么存款和储蓄看个人习于旧贯和体系须求吗

 4.1 优化表的种类

在MySQL中,能够接纳函数PROCEDUREANALYSE()对日前利用的表张开剖析,改函数能够对数据表中列的数据类型提出优化提议,客户能够凭要是用的实际上意况商量寻思是否实行

mysql> select * from duck_cust procedure analyse()G
*************************** 1. row ***************************
             Field_name: sakila.duch_cust.cust_num
              Min_value: 1
              Max_value: 6
             Min_length: 1
             Max_length: 1
       Empties_or_zeros: 0
                  Nulls: 0
Avg_value_or_avg_length: 3.5000
                    Std: 1.7078
      Optimal_fieldtype: ENUM(‘1’,‘2’,‘3’,‘4’) NOT NULL
*************************** 2. row ***************************
  … …

1)那时候生机勃勃旦TIMESTAMP列未有出示的内定not null属性,那么默许的该列可认为null,那个时候向该列中插入null值时,会一向记录null,并非current timestamp。

享受两篇有关int vs timestamp vs datetime质量测量试验的篇章

4.2 大存款和储蓄量化解

1.分库分表

2.分区

 

关键目标:

1.调整和裁减表的记录数

2.减小对操作系统的承当压力

2)不会自行的为表中的第3个TIMESTAMP列加上DEFAULT CUEvoqueRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP属性,除非你在建表的时候显得的指明。

Myisam:MySQL DATETIME vs TIMESTAMP vs INT 测试仪

myisam读锁定

1.lock table t1 read

2.敞开另二个mysql连接终端,接着去尝试:

select * from t1

3.再insert、update和delete t1那张表,你会发掘全数的数据都停留在尖峰上从没有过当真的去操作

4.读锁定对大家在做备份大批量数额时十二分有用.

mysqldump -uroot -p123 test >test.sql

3)借使TIMESTAMP列被加多了not null属性,并且未有内定默许值。那个时候假若向表中插入记录,不过从未给该TIMESTAMP列钦定值的时候,倘使strict  sql_mode被内定了,那么会一直报错。如若strict sql_mode未有被内定,那么会向该列中插入’0000-00-00 00:00:00’何况发生四个warning。

CREATE TABLE `test_datetime`  unsigned NOT NULL AUTO_INCREMENT,`datetime` FIELDTYPE NOT NULL,PRIMARY KEY  ENGINE=MyISAM;

myisam写锁定

1.lock table t1 write

2.开荒另二个mysql终端,尝试去select、insert、update和delete那张表t1,你会发觉都无法操作,都会滞留在终点上,唯有等率先个极点操作甘休,第4个极端技巧真正奉行.

3.可以知道表的写锁定比读锁定更严酷

4.雷同意况下大家超级少去显式的去对表进行read和write锁定的,myisam会自动进行锁定的.

那边为什么一贯重申版本呢?首要依然因为那些参数explicit_defaults_for_timestamp在MySQL 5.6.6初叶参预,何况MySQL 5.6跟MySQL 5.7的暗中同意SQL情势不一样了。MySQL 5.7的SQL形式特别无情了,节制了非法的日期输入,举个例子”0000-00-00 00:00:00″。详细情形能够看:MySQL 5.7暗中同意SQL情势带来的主题材料总计。

kip-locking key_buffer = 128M max_allowed_packet = 1M table_cache = 512 sort_buffer_size = 2M read_buffer_size = 2M read_rnd_buffer_size = 8M myisam_sort_buffer_size = 8M thread_cache_size = 8 query_cache_type = 0 query_cache_size = 0 thread_concurrency = 4

慢查询日志

1.有关慢查询

开户和安装慢查询时间:

vi /etc/my.cnf

log_slow_queries=slow.log

long_query_time=5

少年老成、运行mysql时未设置explicit_defaults_for_timestamp=1

DATETIME 14111 14010 14369 130000000TIMESTAMP 13888 13887 14122 90000000INT 13270 12970 13496 90000000

 

1)成立测量试验表test_time

mysql> select * from test_datetime into outfile ‘/tmp/test_datetime.sql';Query OK, 10000000 rows affected mysql> select * from test_timestamp into outfile ‘/tmp/test_timestamp.sql';Query OK, 10000000 rows affected mysql> select * from test_int into outfile ‘/tmp/test_int.sql';Query OK, 10000000 rows affected alter table test_datetime rename test_int;alter table test_int add column datetimeint INT NOT NULL;update test_int set datetimeint = UNIX_TIMESTAMP;alter table test_int drop column datetime;alter table test_int change column datetimeint datetime int not null;select * from test_int into outfile ‘/tmp/test_int2.sql';drop table test_int;

mysql> set session sql_mode='';

So now I have exactly the same timestamps from the DATETIME test, and it will be possible to reuse the originals for TIMESTAMP tests as well.

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> load data infile ‘/export/home/ntavares/test_datetime.sql' into table test_datetime;Query OK, 10000000 rows affected Records: 10000000 Deleted: 0 Skipped: 0 Warnings: 0

mysql> load data infile ‘/export/home/ntavares/test_datetime.sql' into table test_timestamp;Query OK, 10000000 rows affected, 44 warnings Records: 10000000 Deleted: 0 Skipped: 0 Warnings: 44

mysql> load data infile ‘/export/home/ntavares/test_int2.sql' into table test_int;Query OK, 10000000 rows affected Records: 10000000 Deleted: 0 Skipped: 0 Warnings: 0

mysql> create table test_time(time1 timestamp,time2 timestamp,id int);

As expected, since INT is simply stored as is while the others have to be recalculated. Notice how TIMESTAMP still performs worse, even though uses half of DATETIME storage size.

Query OK, 0 rows affected (0.01 sec)

Let's check the performance of full table scan:

此地关闭了SQL情势,是因为MySQL 5.7暗许SQL方式到场了NO_ZERO_DATE和NO_ZERO_IN_DATE形式,这三个方式的意趣如下:

mysql> SELECT SQL_NO_CACHE count FROM test_datetime WHERE datetime > ‘1970-01-01 01:30:00′ AND datetime < ‘1970-01-01 01:35:00′;+———–+| count |+———–+| 211991 |+———–+1 row in set mysql> SELECT SQL_NO_CACHE count FROM test_timestamp WHERE datetime > ‘1970-01-01 01:30:00′ AND datetime < ‘1970-01-01 01:35:00′;+———–+| count |+———–+| 211991 |+———–+1 row in set mysql> SELECT SQL_NO_CACHE count FROM test_int WHERE datetime > UNIX_TIMESTAMP('1970-01-01 01:30:00′) AND datetime < UNIX_TIMESTAMP('1970-01-01 01:35:00′);+———–+| count |+———–+| 211991 |+———–+1 row in set 

NO_ZERO_DATE

Then again, TIMESTAMP performs worse and the recalculations seemed to impact, so the next good thing to test seemed to be without those recalculations: find the equivalents of those UNIX_TIMESTAMP() values, and use them instead:

在严俊形式,不要将’0000-00-00’做为合法日期。你如故可以用IGNORE选项插入零日期。在非严峻形式,能够承担该日期,但会生成警报。

mysql> select UNIX_TIMESTAMP('1970-01-01 01:30:00′) AS lower, UNIX_TIMESTAMP('1970-01-01 01:35:00′) AS bigger;+——-+——–+| lower | bigger |+——-+——–+| 1800 | 2100 |+——-+——–+1 row in set mysql> SELECT SQL_NO_CACHE count FROM test_int WHERE datetime > 1800 AND datetime < 2100;+———–+| count |+———–+| 211991 |+———–+1 row in set 

NO_ZERO_IN_DATE

Innodb:MySQL DATETIME vs TIMESTAMP vs INT performance and benchmarking with InnoDB

在严谨方式,不选择月或日有些为0的日子(也正是说比NO_ZERO_DATE),对年不限制。假设选用IGNORE选项,大家为临近的日期插入’0000-00-00’。在非严俊情势,能够承担该日期,但会生成警示。

总结

故而风华正茂旦不去掉那四个SQL情势,那么依照大家地点所说的表中的第三个TIMESTAMP列,若无一些名null属性大概尚未点名暗许值,也未尝钦点ON UPDATE语句。那么该列会自动被抬高DEFAULT CU宝马X5RENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP属性。第贰个TIMESTAMP列之后的别的的TIMESTAMP类型的列,若无点名null属性,也绝非点名默许值,那么该列会被机关抬高DEFAULT ‘0000-00-00 00:00:00’属性。所以第三个timestamp加多暗中认可值时就能报错的,错误如下:

上述便是那篇随笔的全体内容了,希望本文的开始和结果对大家的求学恐怕专门的学业有着自然的参照学习价值,多谢大家对台本之家的支撑。若是您想打听越来越多相关内容请查看下边相关链接

mysql> create table test_time1(time1 timestamp,time2 timestamp,id int);

ERROR 1067 (42000): Invalid default value for 'time2'

表创设好领悟后,上面来查看表结构新闻,如下:

mysql> show create table test_timeG

*************************** 1. row ***************************

       Table: test_time

Create Table: CREATE TABLE `test_time` (

  `time1` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  `time2` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  `id` int(11) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

1 row in set (0.00 sec)

从表构造中得以看来表中timestamp列被活动安装为not null,何况表中率先个timestamp列棉被服装置了DEFAULT CULacrosseRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP默许值,第二个字段私下认可值为”0000-00-00 00:00:00″。

2)插入测量试验

mysql> insert into test_time select null,null,1;

Query OK, 1 row affected (0.00 sec)

Records: 1  Duplicates: 0  Warnings: 0

mysql> select * from test_time;

+---------------------+---------------------+------+

| time1               | time2               | id   |

+---------------------+---------------------+------+

| 2017-02-22 15:42:11 | 2017-02-22 15:42:11 |    1 |

+---------------------+---------------------+------+

1 row in set (0.00 sec)

往timestamp列插入null值时,会活动为该列设置为current time。

插入时未钦点值的timestamp列中被插入了0000-00-00 00:00:00(非表中首先个timestamp列)。

mysql> select * from test_time;

+---------------------+---------------------+------+

| time1               | time2               | id   |

+---------------------+---------------------+------+

| 2017-02-22 15:42:11 | 2017-02-22 15:42:11 |    1 |

| 2017-02-22 15:45:09 | 0000-00-00 00:00:00 |    1 |

+---------------------+---------------------+------+

2 rows in set (0.00 sec)

二、启动mysql时设置explicit_defaults_for_timestamp=1

1)成立表(不需求校勘sql mode)

mysql> create table test_time(time1 timestamp,time2 timestamp,id int);

Query OK, 0 rows affected (0.00 sec)

mysql> show create table test_timeG

*************************** 1. row ***************************

       Table: test_time

Create Table: CREATE TABLE `test_time1` (

  `time1` timestamp NULL DEFAULT NULL,

  `time2` timestamp NULL DEFAULT NULL,

  `id` int(11) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

1 row in set (0.00 sec)

通过表结构我们来看,2个timestamp列都棉被服装置为null,并且安装了暗许值为null。

2)插入测验

mysql> insert into test_time select null,1;

Query OK, 1 row affected (0.00 sec)

Records: 1  Duplicates: 0  Warnings: 0

mysql> select * from test_time;

+-------+-------+------+

| time1 | time2 | id   |

+-------+-------+------+

| NULL  | NULL  |    1 |

+-------+-------+------+

1 row in set (0.00 sec)

为timestamp列钦点了not null属性,在strict SQL mode时,如若插入时该列未有一点名值,会直接报错。

mysql> create table test_time(time1 timestamp,time2 timestamp not null,id int);

Query OK, 0 rows affected (0.01 sec)

mysql> insert into test_time select null,null,1;

ERROR 1048 (23000): Column 'time2' cannot be null

如果为timestamp列指定not null属性,在非stric sql_mode方式下,假若插入的时候该列没有一点名值,那么会向该列中插入0000-00-00 00:00:00,并且产生告急。

mysql> set session sql_mode='';

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> insert into test_time select null,null,1;

Query OK, 1 row affected, 1 warning (0.00 sec)

Records: 1  Duplicates: 0  Warnings: 1

mysql> show warnings;

+---------+------+-------------------------------+

| Level   | Code | Message                       |

+---------+------+-------------------------------+

| Warning | 1048 | Column 'time2' cannot be null |

+---------+------+-------------------------------+

1 row in set (0.00 sec)

mysql> select * from test_time;

+-------+---------------------+------+

| time1 | time2               | id   |

+-------+---------------------+------+

| NULL  | 0000-00-00 00:00:00 |    1 |

+-------+---------------------+------+

1 row in set (0.00 sec)

地点说的都以有关timestamp类型的,就算是datetime呢?

mysql> create table time1(id int,time1 datetime,time2 datetime);

Query OK, 0 rows affected (0.03 sec)

mysql> show create table time1G

*************************** 1. row ***************************

       Table: time1

Create Table: CREATE TABLE `time1` (

  `id` int(11) DEFAULT NULL,

  `time1` datetime DEFAULT NULL,

  `time2` datetime DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8

1 row in set (0.00 sec)

mysql> insert into time1(id) values(1);

Query OK, 1 row affected (0.00 sec)

mysql> select * from time1;

+------+-------+-------+

| id   | time1 | time2 |

+------+-------+-------+

|    1 | NULL  | NULL  |

+------+-------+-------+

1 row in set (0.00 sec)

能够看见跟平常品种相通。

转自:

本文由澳门新葡萄京娱乐网站发布于MySQL数据库,转载请注明出处:SQL语句优化,MySQL存款和储蓄时间项目接收的主题

关键词: