java每秒向mysql写一条记录_【Java】mysql一条记录在高并发场景下读写?
CREATE TABLE `user_info` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`balance` decimal(10,2) DEFAULT '0.00' COMMENT '余額',
`role` int(1) DEFAULT '0' COMMENT '用戶角色 0:普通 1:系統',
`version` int(11) DEFAULT '0' COMMENT '版本',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=20409 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用戶信息';
--系統用戶
INSERT INTO `temp`.`user_info`(`id`, `balance`, `version`, `role`) VALUES (1, 10000.00, 0, 1);
--普通用戶
INSERT INTO `temp`.`user_info`(`id`, `balance`, `version`, `role`) VALUES (2, 100.00, 0, 0);
......
這張表有系統用戶這條記錄,其他用戶在交易時,
都會對這個系統用戶balance 操作讀寫。
在大量普通用戶同時交易的場景下就會高并發對這條系統記錄讀寫.
有什么其他優化方案嗎?
回答
你想問的是否是一致性的問題?
讀寫效率低就用redis吧,使用那個時間不過期的,在加上個key作為lock和手動事務也可以實現
總結
以上是生活随笔為你收集整理的java每秒向mysql写一条记录_【Java】mysql一条记录在高并发场景下读写?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 民生初审通过多久下卡
- 下一篇: 建行第二张信用卡额度