mysql给日期创建索引_如何在MySql的DATETIME字段的日期部分创建索引

在MySQL中,对于包含大量记录的表,当使用DATE函数筛选DATETIME字段时,查询可能会变得很慢。文章介绍了如何针对日期部分创建索引以加速此类查询。示例展示了如何查看表格结构并指出在TranDateTime字段上创建索引的必要性,以优化'WHERE date(TranDateTime) = '特定日期''的查询性能。
摘要由CSDN通过智能技术生成

如何在DATETIME字段的日期部分创建索引?

mysql> SHOW COLUMNS FROM transactionlist;

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

| Field | Type | Null | Key | Default | Extra |

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

| TransactionNumber | int(10) unsigned | NO | PRI | NULL | auto_increment |

| WagerId | int(11) | YES | MUL | 0 | |

| TranNum | int(11) | YES | MUL | 0 | |

| TranDateTime | datetime | NO | | NULL | |

| Amount | double | YES | | 0 | |

| Action | smallint(6) | YES | | 0 | |

| Uid | int(11) | YES | | 1 | |

| AuthId | int(11) | YES | | 1 | |

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

8 rows in set (0.00 sec)

TranDateTime用于保存交易发生的日期和时间

我的表中有超过1,000,000条记录,并且该语句

SELECT * FROM transactionlist where date(TranDateTime) = '2008-08-17'

花费很长时间。

编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值