mysql数据库max()函数的作用是什么
本篇内容介绍了“mysql数据库max()函数的作用是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
查看表结构:
mysql>showcreatetablecoupon_use_test\G***************************1.row***************************Table:coupon_use_testCreateTable:CREATETABLE`coupon_use_test`(`id`int(11)NOTNULLDEFAULT'0',`user_id`varchar(40)CHARACTERSETutf8COLLATEutf8_binDEFAULTNULL,`coupon_code`varchar(40)CHARACTERSETutf8COLLATEutf8_binNOTNULLDEFAULT'',`status`varchar(2)CHARACTERSETutf8COLLATEutf8_binDEFAULT'00',`use_time`datetimeDEFAULTNULL,`remark1`varchar(200)CHARACTERSETutf8COLLATEutf8_binDEFAULTNULL,`remark2`varchar(200)CHARACTERSETutf8COLLATEutf8_binDEFAULTNULL,`remark3`varchar(200)CHARACTERSETutf8COLLATEutf8_binDEFAULTNULL,`create_time`timestampNOTNULLDEFAULTCURRENT_TIMESTAMP,`create_user_id`varchar(128)CHARACTERSETutf8COLLATEutf8_binDEFAULTNULL,`update_time`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP)ENGINE=InnoDBDEFAULTCHARSET=utf81rowinset(0.00sec)
测试查询速度:
mysql>selectmax(create_time)fromcoupon_use_test;+---------------------+|max(create_time)|+---------------------+|2016-06-2516:44:25|+---------------------+1rowinset(2.01sec)
查看执行计划:
mysql>explainselectmax(create_time)fromcoupon_use_test;+----+-------------+-----------------+------------+------+---------------+------+---------+------+---------+----------+-------+|id|select_type|table|partitions|type|possible_keys|key|key_len|ref|rows|filtered|Extra|+----+-------------+-----------------+------------+------+---------------+------+---------+------+---------+----------+-------+|1|SIMPLE|coupon_use_test|NULL|ALL|NULL|NULL|NULL|NULL|1706101|100.00|NULL|+----+-------------+-----------------+------------+------+---------------+------+---------+------+---------+----------+-------+1rowinset,1warning(0.00sec)
创建create_time字段索引
mysql>altertablecoupon_use_testaddindexidx_create_time(create_time);QueryOK,0rowsaffected(17.49sec)Records:0Duplicates:0Warnings:0
再次查询:
mysql>selectmax(create_time)fromcoupon_use_test;+---------------------+|max(create_time)|+---------------------+|2016-06-2516:44:25|+---------------------+1rowinset(0.00sec)
查看执行计划:
mysql>explainselectmax(create_time)fromcoupon_use_test;+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+------------------------------+|id|select_type|table|partitions|type|possible_keys|key|key_len|ref|rows|filtered|Extra|+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+------------------------------+|1|SIMPLE|NULL|NULL|NULL|NULL|NULL|NULL|NULL|NULL|NULL|Selecttablesoptimizedaway|+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+------------------------------+1rowinset,1warning(0.00sec)
索引是有序的,create_time字段加完索引之后取max(create_time)速度变快。
看到其他优化方法,通过转变SQL查询方式实现
mysql>selectcreate_timefromcoupon_use_testorderbycreate_timedesclimit1;+---------------------+|create_time|+---------------------+|2016-06-2516:44:25|+---------------------+1rowinset(0.00sec)
查看执行计划:
mysql>explainselectcreate_timefromcoupon_use_testorderbycreate_timedesclimit1;+----+-------------+-----------------+------------+-------+---------------+-----------------+---------+------+------+----------+-------------+|id|select_type|table|partitions|type|possible_keys|key|key_len|ref|rows|filtered|Extra|+----+-------------+-----------------+------------+-------+---------------+-----------------+---------+------+------+----------+-------------+|1|SIMPLE|coupon_use_test|NULL|index|NULL|idx_create_time|4|NULL|1|100.00|Usingindex|+----+-------------+-----------------+------------+-------+---------------+-----------------+---------+------+------+----------+-------------+1rowinset,1warning(0.01sec)
“mysql数据库max()函数的作用是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。