学无止境

将编号字段设置成主键或唯一键.(如果无法设置成主键或唯一键,另建一个表专门维护编号) 插入的时候,如果出现冲突,就再重新取编号,再插入就可以了. 这样的效率高于用锁. 因为用锁要锁住整个表,直到插入操作完成. 这样,即使正常的读数据也会受到影响到. 举个例子来说 不锁表的情况: 假设你要插入一条记录,那么你就取最大编号:不是N+1,然后进行插入 如果在你取编号后,插入记录前,又有另一个用户要插入记录,那很显然,因为你的记录还未插 入,那另一个用户取得的编号仍然是N+1,和你的一样,这样就导致了编号重复. 只锁最大记录的情况: 假设你要插入一条记录,那么你就取最大编号:不是N+1,然后进行插入 如果在你取编号后,插入记录前,又有另一个用户修改记录,他将某条记录修改成了N+! 那结果和上面一样,导致了编号重复. 锁整个表的情况: 因为你在取编号时,锁住了整个表,那很显然,就相当于你独占了整个表,此时,可以避免编号重复,但另一个后果是,所有的用户都必须等你释放了锁后,才能使用,包括只是读取表的用户,如果迸发用户多的话,很显然严重影响效率.

posted on 2011-09-07 15:44  DHT  阅读(323)  评论(0编辑  收藏  举报