SQL优化-二

 1:简单SQL查询

  1. EXPLAIN
  2. SELECT * FROM log_member
  3. WHERE member_id = 46770 ;

2:表索引信息

  1. CREATE TABLE `log_member` (
  2. `log_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  3. `module_code` varchar(30) DEFAULT NULL COMMENT '模块编码',
  4. `method` varchar(30) DEFAULT NULL COMMENT '业务方法',
  5. `json_data` varchar(2000) DEFAULT NULL COMMENT '业务数据<创建以及修改均需要存储数据>',
  6. `ip` char(30) DEFAULT NULL COMMENT 'IP地址',
  7. `member_id` varchar(30) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '会员账户ID',
  8. `member_name` varchar(30) DEFAULT NULL COMMENT '会员名字',
  9. `account` varchar(30) DEFAULT NULL COMMENT '操作者账户',
  10. `operator` varchar(30) DEFAULT NULL COMMENT '操作者',
  11. `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '操作时间',
  12. `parent_id` varchar(20) DEFAULT NULL COMMENT '会员父ID',
  13. PRIMARY KEY (`log_id`),
  14. KEY `member_name` (`member_name`),
  15. KEY `IP` (`ip`),
  16. KEY `moudle_code` (`module_code`),
  17. KEY `method` (`method`),
  18. KEY `memberid` (`member_id`),
  19. KEY `parentid` (`parent_id`)
  20. ) ENGINE=InnoDB AUTO_INCREMENT=567536 DEFAULT CHARSET=utf8 COMMENT='会员日志记录表'

 

3:分析SQL

 

 喵了一眼,数据库字段类型是varchar、查询时放入的是数字类型。所以索引无法生效。

4:解决问题

记一次MySQL 查询慢索引不生效过程 

posted @ 2020-12-31 10:35  DiligentCoder  阅读(85)  评论(0编辑  收藏  举报