MySQL数据库里,目前以auto_increment的ID为主键,但是需要频繁以时间字段进行检索,如何操作效率最高? 200

时间也是按照ID的大小进行有序排列的。auto_increment的ID的值越大,时间值同样也越大。不想设置索引。因为索引会很大程度上影响insert操作的效率。谢谢!... 时间也是按照ID的大小进行有序排列的。auto_increment的ID的值越大,时间值同样也越大。

不想设置索引。因为索引会很大程度上影响insert操作的效率。

谢谢!
展开
 我来答
asxsa
2014-11-05 · 超过12用户采纳过TA的回答
知道答主
回答量:23
采纳率:0%
帮助的人:11.8万
展开全部
如果Insert数据不是大批量的话,强烈建议创建索引,只样检索效率最高,代码也好写。

否则如果时间字段不会更新的话,倒是可以创建一个函数传入时间字段和上区间/下区间标记返回上区间/下区间ID,这个函数也不复杂就是根据现在的数据现状把时间分几个区间,比如: if p_date <= '2014-11-1' and p_date >= '2014-11-1' then return 上区间/下区间ID (if else 分支越细 主键ID的索引利用率越高), 这样在Where中用这个函数就可以利用主键ID的索引了,不用时间索引只能这样了。
红草123
2014-11-04 · TA获得超过202个赞
知道小有建树答主
回答量:267
采纳率:100%
帮助的人:165万
展开全部
由于本人知识较浅,说的不一定对啊。既然你不想在时间字段设置索引,那就把时间字段改为主键(其实默认给主键字段加了索引),如果时间字段不重复的话。然后就不要ID字段了。
追问
1、时间字段不能确保不重复。
2、设置索引的话,每次insert操作效率会降低百分之多少?
追答
建立索引,数据库存储文件会稍大一些,插入的话应该影响不是很大。你的系统对插入操作要求性能很高吗?如果不是很高,就和你之前一样,在时间字段建索引。做技术嘛,只能选折衷方案了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式