IT世界|导致MySQL索引失效的几种常见写法,请看这里
推荐学习
- 真真香!耗时大半个月收整全套「Java架构进阶pdf」没白费
- 全网独家的“MySQL高级知识”集合 , 骨灰级收藏 , 手慢则无
最近一直忙着处理原来老项目遗留的一些SQL优化问题 , 由于当初表的设计以及字段设计的问题 , 随着业务的增长 , 出现了大量的慢SQL , 导致MySQL的CPU资源飙升 , 基于此 , 给大家简单分享下这些比较实用的易于学习和使用的经验 。
这次的话简单说下如何防止你的索引失效 。
再说之前我先根据我最近的经验说下我对索引的看法 , 我觉得并不是所有的表都需要去建立索引 , 对于一些业务数据 , 可能量比较大了 , 查询数据已经有了一点压力 , 那么最简单、快速的办法就是建立合适的索引 , 但是有些业务可能表里就没多少数据 , 或者表的使用频率非常不高的情况下是没必要必须要去做索引的 。 就像我们有些表 , 2年了可能就10来条数据 , 有索引和没索引性能方面差不多多少 。
索引只是我们优化业务的一种方式 , 千万为了为了建索引而去建索引 。
下面是我此次测试使用的一张表结构以及一些测试数据
CREATE TABLE `user` (`id` int(5) unsigned NOT NULL AUTO_INCREMENT,`create_time` datetime NOT NULL,`name` varchar(5) NOT NULL,`age` tinyint(2) unsigned zerofill NOT NULL,`sex` char(1) NOT NULL,`mobile` char(12) NOT NULL DEFAULT '',`address` char(120) DEFAULT NULL,`height` varchar(10) DEFAULT NULL,PRIMARY KEY (`id`),KEY `idx_createtime` (`create_time`) USING BTREE,KEY `idx_name_age_sex` (`name`,`sex`,`age`) USING BTREE,KEY `idx_ height` (`height`) USING BTREE,KEY `idx_address` (`address`) USING BTREE,KEY `idx_age` (`age`) USING BTREE) ENGINE=InnoDB AUTO_INCREMENT=261 DEFAULT CHARSET=utf8;
INSERT INTO `bingfeng`.`user`(`id`, `create_time`, `name`, `age`, `sex`, `mobile`, `address`, `height`) VALUES (1, '2019-09-02 10:17:47', '冰峰', 22, '男', '1', '陕西省咸阳市彬县', '175');INSERT INTO `bingfeng`.`user`(`id`, `create_time`, `name`, `age`, `sex`, `mobile`, `address`, `height`) VALUES (2, '2020-09-02 10:17:47', '松子', 13, '女', '1', NULL, '180');INSERT INTO `bingfeng`.`user`(`id`, `create_time`, `name`, `age`, `sex`, `mobile`, `address`, `height`) VALUES (3, '2020-09-02 10:17:48', '蚕豆', 20, '女', '1', NULL, '180');INSERT INTO `bingfeng`.`user`(`id`, `create_time`, `name`, `age`, `sex`, `mobile`, `address`, `height`) VALUES (4, '2020-09-02 10:17:47', '冰峰', 20, '男', '17765010977', '陕西省西安市', '155');INSERT INTO `bingfeng`.`user`(`id`, `create_time`, `name`, `age`, `sex`, `mobile`, `address`, `height`) VALUES (255, '2020-09-02 10:17:47', '竹笋', 22, '男', '我测试下可以储存几个中文', NULL, '180');INSERT INTO `bingfeng`.`user`(`id`, `create_time`, `name`, `age`, `sex`, `mobile`, `address`, `height`) VALUES (256, '2020-09-03 10:17:47', '冰峰', 21, '女', '', NULL, '167');INSERT INTO `bingfeng`.`user`(`id`, `create_time`, `name`, `age`, `sex`, `mobile`, `address`, `height`) VALUES (257, '2020-09-02 10:17:47', '小红', 20, '', '', NULL, '180');INSERT INTO `bingfeng`.`user`(`id`, `create_time`, `name`, `age`, `sex`, `mobile`, `address`, `height`) VALUES (258, '2020-09-02 10:17:47', '小鹏', 20, '', '', NULL, '188');INSERT INTO `bingfeng`.`user`(`id`, `create_time`, `name`, `age`, `sex`, `mobile`, `address`, `height`) VALUES (259, '2020-09-02 10:17:47', '张三', 20, '', '', NULL, '180');INSERT INTO `bingfeng`.`user`(`id`, `create_time`, `name`, `age`, `sex`, `mobile`, `address`, `height`) VALUES (260, '2020-09-02 10:17:47', '李四', 22, '', '', NULL, '165');
- 刘哥说游戏|国乒四大世界冠军收到国际乒联邀请,将参加世界杯!但却引起争议
- 快了棒棒糖|你知道几种?,世界各国的通用弹药
- 新华网|专家:我国迎来成为新的世界贸易中心的历史性机遇
- 归处|世界上3个最美丽的火车站-你认为中国最漂亮的是哪个?
- 诗呓|拥有多个世界之最,让人大开眼界,却鲜少人知,贵州超低调的城市
- 央视新闻客户端|世界周刊丨特朗普疫苗计划争议连连美国“十月惊奇”要来了么?
- 人民币|摩根士丹利:人民币10年内将成为世界第三大储备货币
- 世界军事|世界军事实力排行榜:美国依旧稳居第一,那么中国在第几呢?
- 魔兽|魔兽世界:燃烧军团洗白在即?暴雪埋下二十年伏笔,伊瑟拉也是反派
- 绝地求生|期待一年半的宝藏手游终于测试!开放世界真实场景,刷新生存新高度