EXPLAIN
SELECT * FROM
t_basic_setting_production_cp WHERE group_id = 100 AND (( modify_time = '2020-04-02 19:35:58.786' AND production_cp_id > 86091 )
OR ( modify_time > '2020-04-02 19:35:58.786' ))
ORDER BY
modify_time,
production_cp_id ASC LIMIT 0,10
==========================================================
modify_time 有索引, 下面是explian結果:
1 SIMPLE t_basic_setting_production_cp range PRIMARY,m_time m_time 16 54409 10.00 Using index condition; Using where
==========================================================
CREATE TABLE `t_basic_setting_production_cp` (
`production_cp_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '生產企業id',
`group_id` bigint(20) NOT NULL COMMENT '集團編碼',
`production_cp_code` varchar(60) COLLATE utf8mb4_bin NOT NULL COMMENT '生產企業編碼',
`production_cp_name` varchar(60) COLLATE utf8mb4_bin NOT NULL COMMENT '生產企業名稱',
`production_cp_abc` varchar(60) COLLATE utf8mb4_bin NOT NULL COMMENT '生產企業助記碼',
`is_enable` tinyint(2) NOT NULL COMMENT '是否啟用',
`contact` varchar(60) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '聯系人',
`contact_type` varchar(500) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '聯系方式',
`address` varchar(100) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '地址',
`create_user` bigint(20) DEFAULT NULL COMMENT '創建人',
`create_time` datetime DEFAULT NULL COMMENT '創建時間',
`modify_user` bigint(20) DEFAULT NULL COMMENT '最終修改人',
`modify_time` datetime(3) DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最終修改時間',
PRIMARY KEY (`production_cp_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=195759 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='生產企業表';
uj5u.com熱心網友回復:
可能是走了Order By的索引uj5u.com熱心網友回復:
1、兩個or條件里,用的一個欄位;2、樓主的create table陳述句里,沒發現modify_time列上的索引。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/23176.html
標籤:MySQL
