十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
锁是 数据库保护数据表的一种机制,通常是自动的,分级别的,如果你访问一个表的并发量太大,可以试试拆分这个表,比如按日期拆分成月表,或者利用oracle的功能(分区)进行拆分来分散压力,如果没有依据拆分的话,可以做成实体化快照,将一些查询类的操作指向这个快照,分摊表的访问量,也可以通过提升硬件,比如上SSD磁盘,然后将这个表放到这个磁盘上,提高访问速度。
创新互联建站专注于大名企业网站建设,成都响应式网站建设,商城网站定制开发。大名网站建设公司,为大名等地区提供建站服务。全流程按需求定制制作,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务
如果当前有用户在对某行数据进行修改登操作,oracle会在这行数据上添加行级锁,期间,所有用户对该行数据只能查询,不可修改,如果比如说执行update操作,需等待该修改操作事务提交或者回滚之后,才行。
你这个需求是不能够通过数据库的事务管理功能来进行实现的,因为数据库执行的是严格的ACID,提交了就确认持久化了,而不提交就不能够被其他的事务所访问,对于update操作来说,会申请排它锁,这时其他事务是无法访问该数据的,直到commit为止才能够访问。
我觉得你的需求本事就是破坏事务特性的(只部分满足ACID),这时要实现的话就只能从程序的级别来进行实现,就是在编程的时候实现功能,类似事务的控制要用程序来实现,比如更新的日志用缓存存在内存中或写到一个文件上