对于频繁删除和插入的表,怎么优化?

willko
对于频繁删除和插入的表,怎么优化?

有一张表,,表里的记录数是根据会员来限制的
例如,每个会员只能有100条记录
所以,当会员操作的时候,,要检测是不是超过100条了。。。超过了就要删除旧的

请问有什么好的方法呢?
问题   怎么高校的删除旧的记录。。

是不是只能先找到旧记录的数目
然后用delete.... limit X来删除呢?

jerryma
超过100条就不允许创建不就完了?大量插入和大量删除都没了...

chuhongze
[quote]原帖由 [i]willko[/i] 于 2008-6-1 16:41 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8481486&ptid=1119925][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
有一张表,,表里的记录数是根据会员来限制的
例如,每个会员只能有100条记录
所以,当会员操作的时候,,要检测是不是超过100条了。。。超过了就要删除旧的

请问有什么好的方法呢?
问题   怎么高校的删除 ... [/quote]



给每个会员的记录编一个流水号,要删除旧的就按这个流水号定位就可以了.

yueliangdao0608
Why not stopped insert when it's close to 100?

willko
因为新插入的数据要代替旧的。。
所以不能停止插入。。

yueliangdao0608
See the usage of replace into

sunnyfun
要不搞个循环链表结构,100条记录一个环,无需删除记录,加个节点字段就可以了。
不过每次写前都要先读一下节点。

yueliangdao0608
You can also write a trigger to record the number into another table.

liusz
[quote]原帖由 [i]sunnyfun[/i] 于 2008-6-3 10:51 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8505368&ptid=1119925][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
要不搞个循环链表结构,100条记录一个环,无需删除记录,加个节点字段就可以了。
不过每次写前都要先读一下节点。 [/quote]

内存中的环吧? 用户数量多的话要耗多少内存? 这样也不支持用户重新登陆。

有数据表的环没有?

yueliangdao0608
Periodically execute the following statement.

[table=95%][tr][td][font=FixedSys][color=#000000][color=#0000FF]create[/color] [color=#0000FF]table[/color] user_new [color=#0000FF]like[/color] [color=#FF0000]user[/color][color=#0000CC];[/color]
[color=#0000FF]insert[/color] [color=#0000FF]into[/color] user_new order by id desc limit 100[color=#0000CC];[/color]
[color=#0000FF]drop[/color] [color=#0000FF]table[/color] [color=#FF0000]user[/color][color=#0000CC];[/color]
alter [color=#0000FF]table[/color] user_new rename [color=#0000FF]to[/color] [color=#FF0000]user[/color][color=#0000CC];[/color][/color][/font][/td][/tr][/table]

[[i] 本帖最后由 yueliangdao0608 于 2008-6-4 14:16 编辑 [/i]]