我正在尝试优化具有 220,000 行的相对较大的 mysql (myisam) 表。表本身并没有那么大 - 大小约为 23.5MB。那么,真正的问题是什么?- 我得到这样的查询:
SELECT * FROM table WHERE DATE_FORMAT(date_field, '%m%d') = '1128' LIMIT 10
我试图在 date_field 上设置一个索引,但 EXPLAIN 显示该索引根本没有使用......我想这并不奇怪,因为 DATE_FORMAT() 。所以,我计划添加另一列,将日期保存为 '%m%d' 并在其上放置一个索引。我不想这样做的唯一原因是因为数据重复。
顺便说一句,我使用 date_field 是一个生日字段,我确定我总是需要 date_field 作为 %Y-%m-%d 或只是 %m%d
您对如何优化上述查询有更好的建议吗?提前致谢 !!!
一些信息:
MySQL 版本:5.0.51b-log
操作系统:slackware 12.1
CPU:Pentium III (Coppermine) at 996.783Mhz
RAM:512MB DDR
HDD:80GB SATA
PS我试图添加另一列将日期保存为 %m%d 。结果非常好,但我仍然不喜欢这种方法。我正在等待更多的建议!