如果Insert数据不是大批量的话,强烈建议创建索引,只样检索效率最高,代码也好写。
否则如果时间字段不会更新的话,倒是可以创建一个函数传入时间字段和上区间/下区间标记返回上区间/下区间ID,这个函数也不复杂就是根据现在的数据现状把时间分几个区间,比如: if p_date <= '2014-11-1' and p_date >= '2014-11-1' then return 上区间/下区间ID (if else 分支越细 主键ID的索引利用率越高), 这样在Where中用这个函数就可以利用主键ID的索引了,不用时间索引只能这样了。
是不是要重新把序号进行重置啊?这个使用autoincrement不行,只能自己控制,sqlite3的autoincrement始终是独立编号的,即添加记录的ID始终是前一次添加的ID+1。所以,如果你要保证序号重置,需要添加一个字段,并在每次删除后,使用条件Update来更新需要修改的编号。autoincrement只适用于作表关键字,不做重置对记录保持唯一性很有意义。
你采纳的那个回答完全是胡说八道 auto_increment=1 表示自增长启始位置为1,如果 auto_increment=100 就表示从100开始增长,下一个为101 。
那个说什么auto_increment=1 表示自动增长1,简直坑人。。。
ENGINE=InnoDB使用innodb引擎
DEFAULT CHARSET=utf8 数据库默认编码为utf-8
AUTO_INCREMENT=1 自增键的起始序号为1
扩展:
1InnoDB,是MySQL的数据库引擎之一,为MySQL AB发布binary的标准之一。
2AUTO_INCREMENT会在新记录插入表中时生成一个唯一的数字。希望在每次插入新记录时,自动地创建主键字段的值,可以在表中创建一个 auto-increment 字段。
以上就是关于MySQL数据库里,目前以auto_increment的ID为主键,但是需要频繁以时间字段进行检索,如何 *** 作效率最高全部的内容,包括:MySQL数据库里,目前以auto_increment的ID为主键,但是需要频繁以时间字段进行检索,如何 *** 作效率最高、删除数据库内一个列表中的一行后,如何重置列表内数据id、SQL语句中的auto_increment=1是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)