表结构
: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 有没有影响