小编use*_*970的帖子

MySQL 慢从视图中选择

我很感激这个问题的方法,我在 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)

mysql performance view query-performance

5
推荐指数
1
解决办法
9603
查看次数

标签 统计

mysql ×1

performance ×1

query-performance ×1

view ×1