如何使mysql能够为我的表使用索引

wmomyfyw  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(390)
  1. CREATE TABLE `sqq_merchant`.`other_coupon_order` (
  2. `id` int NOT NULL AUTO_INCREMENT ,
  3. `tenant_id` varchar(32) NOT NULL ,
  4. `store_id` varchar(64) NOT NULL ,
  5. `order_no` varchar(64) NOT NULL ,
  6. `out_order_no` varchar(64) NOT NULL ,
  7. `total_fee` integer NOT NULL DEFAULT 0 ,
  8. `other_coupon_fee` integer NOT NULL DEFAULT 0 ,
  9. `act_total_fee` integer NOT NULL DEFAULT 0 ,
  10. `pay_method` tinyint(4) NOT NULL DEFAULT 0 ,
  11. `trade_time` datetime NOT NULL ,
  12. `create_time` datetime NOT NULL ,
  13. `update_time` datetime NOT NULL ,
  14. PRIMARY KEY (`id`),
  15. INDEX `tenant_store_id` (`tenant_id`, `store_id`) USING BTREE ,
  16. UNIQUE INDEX `order_no` (`order_no`) USING BTREE
  17. );

我想查询已定义租户、已定义商店和已定义交易时间范围的订单,例如:

  1. select * from other_coupon_order where tenant_id = '9001' and store_id = '1151610006' and
  2. trade_time > '2018-01-08 00:00:00' AND trade_time < '2018-01-08 23:59:59'

当我使用explain来解释这个sql时,我发现类型是all,性能很差,如何改进sql
这是解释sql性能的图片

628mspwn

628mspwn1#

你也可以尝试将交易时间添加到综合指数中 (tenant_id, store_id, trade_time) ```
INDEX my_indx_name (tenant_id, store_id, trade_time)

相关问题