表结构
:CREATE TABLE tbl-game-4d3d2d-bkk01-final
(
4d3d2d_id
bigint(20) NOT NULL AUTO_INCREMENT,
4d3d2d_inv_no
varchar(15) COLLATE utf8mb4_unicode_ci DEFAULT ‘0’,
4d3d2d_member_id
int(11) DEFAULT NULL,
4d3d2d_member_username
varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
4d3d2d_produk_id
int(11) DEFAULT ‘0’,
4d3d2d_produk_code
varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL,
4d3d2d_produk_name
varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
4d3d2d_periode_id
int(11) DEFAULT NULL,
4d3d2d_periode_name
varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL,
4d3d2d_game
varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
4d3d2d_mode
varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT ‘diskon’,
4d3d2d_tebakan
varchar(5) DEFAULT NULL,
4d3d2d_4d
decimal(14,2) DEFAULT ‘0.00’,
4d3d2d_3d
decimal(14,2) DEFAULT ‘0.00’,
4d3d2d_2d
decimal(14,2) DEFAULT ‘0.00’,
4d3d2d
decimal(14,2) DEFAULT ‘0.00’,
4d3d2d_disc_4d
decimal(14,2) DEFAULT ‘0.00’,
4d3d2d_disc_3d
decimal(14,2) DEFAULT ‘0.00’,
4d3d2d_disc_2d
decimal(14,2) DEFAULT ‘0.00’,
4d3d2d_disc
decimal(14,2) DEFAULT ‘0.00’,
4d3d2d_bayar
decimal(14,2) DEFAULT ‘0.00’,
reg_date
timestamp DEFAULT CURRENT_TIMESTAMP,
deleted_at
timestamp NULL DEFAULT NULL,
4d3d2d_tebakan_win
varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
4d3d2d_4d_prize
decimal(14,2) DEFAULT ‘0.00’,
4d3d2d_3d_prize
decimal(14,2) DEFAULT ‘0.00’,
4d3d2d_2d_prize
decimal(14,2) DEFAULT ‘0.00’,
4d3d2d_prize
decimal(14,2) DEFAULT ‘0.00’,
4d3d2d_winloss_status_4D
varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT ‘none’,
4d3d2d_winloss_amount_4D
decimal(14,2) DEFAULT ‘0.00’,
4d3d2d_winloss_status_3D
varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT ‘none’,
4d3d2d_winloss_amount_3D
decimal(14,2) DEFAULT ‘0.00’,
4d3d2d_winloss_status_2D
varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT ‘none’,
4d3d2d_winloss_amount_2D
decimal(14,2) DEFAULT ‘0.00’,
4d3d2d_winloss_status
varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT ‘none’,
4d3d2d_winloss_amount
decimal(14,2) DEFAULT ‘0.00’,
4d3d2d_check_code
varchar(150) COLLATE utf8mb4_unicode_ci DEFAULT ‘0’,
referral_bonus
decimal(5,2) DEFAULT NULL,
agent_name
varchar(50) DEFAULT NULL,
four_game_mode
varchar(40) DEFAULT NULL,
bet_result_json
json DEFAULT NULL,
referral_odds
decimal(14,2) DEFAULT NULL COMMENT ,
4d3d2d_pre_payout
decimal(14,2) DEFAULT NULL COMMENT ,
PRIMARY KEY (4d3d2d_id
,4d3d2d_periode_name
) /*T![clustered_index] CLUSTERED */,
KEY 4d3d2d_query_idx
(4d3d2d_member_id
,4d3d2d_produk_name
,4d3d2d_periode_name
),
KEY 4d3d2d_tebakan_idx
(4d3d2d_tebakan
),
KEY bet_records_query
(4d3d2d_periode_name
,4d3d2d_game
,4d3d2d_mode
,agent_name
,4d3d2d_tebakan
,deleted_at
),
KEY predicttion_idx
(4d3d2d_produk_code
,4d3d2d_produk_name
,4d3d2d_periode_name
,4d3d2d_member_id
),
KEY reg_date_idx
(reg_date
),
KEY inv_no
(4d3d2d_inv_no
,4d3d2d_member_username
),
KEY 4d3d2d_winloss_status
(4d3d2d_winloss_status
),
KEY history_and_invoices
(4d3d2d_produk_code
(3),4d3d2d_periode_name
(4),4d3d2d_game
(2),4d3d2d_member_username
(10),4d3d2d_inv_no
),
KEY history_detail_list_idx
(4d3d2d_member_id
,4d3d2d_produk_code
,4d3d2d_produk_name
,4d3d2d_periode_name
,4d3d2d_game
),
KEY member_transaction_history
(4d3d2d_produk_id
,4d3d2d_periode_name
,4d3d2d_member_id
,4d3d2d_game
,4d3d2d_inv_no
),
KEY final_query_idx
(4d3d2d_member_id
,4d3d2d_produk_code
,4d3d2d_produk_name
,4d3d2d_periode_name
,4d3d2d_inv_no
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
PARTITION BY LIST COLUMNS(4d3d2d_periode_name
)
(PARTITION pGame706
VALUES IN (‘706’),
PARTITION pGame707
VALUES IN (‘707’),
PARTITION pGame708
VALUES IN (‘708’),
sql 语句:
BATCH ON 4d3d2d_id LIMIT 50000
UPDATE ${tbName}
SET
4d3d2d_tebakan_win = #{tebakanWin},
4d3d2d_prize = 0,
4d3d2d_winloss_status = ‘LOSS’,
4d3d2d_winloss_amount = 0,
bet_result_json = ‘’
WHERE
4d3d2d_periode_name = #{period}
AND agent_name in
#{agentName}
问题1:
我现在处理1000w 数据的话 要10分钟. 我这sql效率是合理的么
问题2:我把 4d3d2d_id 改成生成随机数后对sql 有没有影响