10条关于数据库的技巧和经验_MySQL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了10条关于数据库的技巧和经验_MySQL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3048字,纯文字阅读大概需要5分钟。
内容图文
![10条关于数据库的技巧和经验_MySQL](/upload/InfoBanner/zyjiaocheng/580/e1cf7e308b5545ba967939193cae383b.jpg)
隔离级别 脏读(Dirty Read) 不可重复读(NonRepeatable Read) 幻读(Phantom Read)
========================================================================
未提交读(Read uncommitted) 可能 可能 可能
已提交读(Read committed) 不可能 可能 可能
可重复读(Repeatable read) 不可能 不可能 可能
可串行化(Serializable ) 不可能 不可能 不可能
串行化事务 最简单策略就是修改事务级别为可串行化,这样某一事务执行时会禁止其他事务执行。但这种方法实际上不可行,因为它使程序对数据库的操作变成单线程的了,不能充分共享数据库资源。 悲观锁控制 当用户执行的操作时会在数据上加锁,直到当前事务释放锁时,其他事务才能执行与该锁相冲突的操作。 以MySQL的事务为例: set autocommit=0; begin; select status from t_goods where id=1 for update ... commit; 默认为行锁,超过一定行数升级为表锁。执行select... for update后,则其他select...for update对此数据的查询会阻塞,但普通select此表不会受影响。 乐观锁控制 用时间戳或版本号控制。用户读数据时不锁定,但查询数据时也一起将控制字段查出。当用户更新时先检查此时数据库中控制字段的值与程序中之前拿到的值是否相同。不同则此条数据已被处理,相同则更新数据,并同时更新控制字段的值为当前时间戳或版本号加1。 7)小事务:避免长时间锁定数据,可以将大数据量的更新或删除分成批次,一个批次是一个小事务。通过记录已成功批次的序号方便意外终止后的恢复。 8)数据删除:删除时可先逻辑删除,更新一个标记列的值表示数据已无效,达到记录留存的作用。日后真正无用时可做物理删除。 9)扩展性:核心表预留出Int,Long,Char等各种类型的扩展字段。 10)分区分库:日均数据增长量大的表,可以按进行分区甚至复合分区。过期数据进行删除或归档到历史库。归档方法可采用:定期请求DBA手动、应用程序(如Java)中实现、服务器上部署Shell脚本实现等。
内容总结
以上是互联网集市为您收集整理的10条关于数据库的技巧和经验_MySQL全部内容,希望文章能够帮你解决10条关于数据库的技巧和经验_MySQL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。