使用sum很慢的问题
CREATE TABLE `wallet_change` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`created_at` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_at` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP,
`version` bigint(20) NOT NULL DEFAULT 0,
`changed_amount` bigint(20) NULL DEFAULT 0,
`description` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`last_amount` bigint(20) NULL DEFAULT 0,
`payment` bigint(20) NULL DEFAULT 0,
`type` int(11) NULL DEFAULT NULL,
`wallet` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
INDEX `FK_ad1017e22d7c4817b0b4511470e`(`payment`) USING BTREE,
INDEX `FK_5ced2321ddd04917b6acd6fc5c6`(`type`) USING BTREE,
INDEX `FK_fa6d9c980f1d4146bd3571a8274`(`wallet`) USING BTREE,
INDEX `index_created_at`(`created_at`) USING BTREE,
INDEX `index_changed_amount`(`changed_amount`) USING BTREE,
CONSTRAINT `wallet_change_ibfk_1` FOREIGN KEY (`commission`) REFERENCES `commissions` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
CONSTRAINT `wallet_change_ibfk_2` FOREIGN KEY (`type`) REFERENCES `wallet_change_type` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
CONSTRAINT `wallet_change_ibfk_3` FOREIGN KEY (`wallet`) REFERENCES `wallets` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
CONSTRAINT `wallet_change_ibfk_4` FOREIGN KEY (`order`) REFERENCES `orders` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 5588657 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
现在我需要求出某几种类型的总金额,
SELECT SUM(wh.changed_amount) AS totlaAmount
FROM wallet_change wh
WHERE wh.type IN(31,32,33,34,35,36,37,38,39,7,40,41,42,43) AND wallet =123
整个表数据量大概有500W,速度很慢.. 大概要40秒左右。
请问怎么优化呐
相关推荐
MySQL中的SUM函数使用教程
MySQL的SUM函数是用来找出记录中各种的字段的总和。 要了解SUM函数考虑EMPLOYEE_TBL表具有以下记录: mysql> SELECT * FROM employee_tbl; +------+------+------------+--------------------+ | id | name | work_date | daily_typing_pages | +------+------+------------+--------------------+ | 1 | John | 2007-01-24 | 250 | | 2 | Ram | 200
mysql踩坑之limit与sum函数混合使用问题详解
前言 今天同事在同步完订单数据后,由于订单总金额和数据源的总金额存在差异,选择使用LIMIT和SUM()函数计算当前分页的总金额来和对方比较特定订单的总金额,却发现计算出来的金额并不是分页的订单总金额,而是所有订单的总金额。 数据库版本为mysql 5.7,下面会用一个示例复盘遇到的问题。 问题复盘 本次复盘会用一个很简单的订单表作为示例。 数据准备 订单表建表语句如下(这里偷懒了,使用了自增ID,实际开发中不建议使用自增ID作为订单ID) CREATE TABLE `order` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '订单I
MYSQL中有关SUM字段按条件统计使用IF函数(case)问题
MYSQL中SUM字段按条件统计使用IF函数,具体实现代码如下,感兴趣的朋友不要错过
对python中矩阵相加函数sum()的使用详解
今天小编就为大家分享一篇对python中矩阵相加函数sum()的使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
python数组双指针算法求和问题LeetCode2sum3sum4sum含代码
双指针算法,python数组双指针算法求和问题LeetCode2sum3sum4sum含代码


