我很感激这个问题的方法,我在 mysql 中有一个彩票系统,这个系统每秒收到很多交易......很多!在允许下注之前,我需要检查每个数字的总金额,为此我有一个观点:
CREATE ALGORITHM=MERGE DEFINER=user@% SQL SECURITY DEFINER
VIEW view_todays_bet AS select number, sum(bet_amout) as total_bet from salestable;
Run Code Online (Sandbox Code Playgroud)
有了这个视图,我就有了这个结果,例如:
Number total_bet
===== ========
01 1500
05 2000
...
99 20
Run Code Online (Sandbox Code Playgroud)
所以当我有一个新的赌注时,我会从视图中进行选择,这就是问题出现的时候,例如,如果我想知道 05 号的余额,我会选择:
select total_bet from view_todays_bet where number = '05';
Run Code Online (Sandbox Code Playgroud)
如果我直接从主表进行选择,salestable我会被阻止,因为有很多来自其他投注的插入,但从视图中选择太慢。请给出一些关于这个问题的方法。
谢谢。
这是表的真实结构:标题/详细信息表和由两者连接而成的视图。
CREATE TABLE `sales_details` (
`codpais` varchar(2) NOT NULL DEFAULT '',
`numero` varchar(7) NOT NULL DEFAULT '',
`verificador` varchar(10) NOT NULL DEFAULT '',
`codterminal` varchar(8) NOT NULL DEFAULT '',
`item` int(4) NOT NULL DEFAULT …Run Code Online (Sandbox Code Playgroud)