MySql基础知识总结(SQL优化篇一)

一、explain返回列简介
1、type常用关键字
system > const > eq_ref > ref > range > index > all。

system:表仅有一行,基本用不到;
const:表最多一行数据配合,主键查询时触发较多;
eq_ref:对于每个来自于前面的表的行组合,从该表中读取一行。这可能是最好的联接类型,除了const类型;
ref:对于每个来自于前面的表的行组合,所有有匹配索引值的行将从这张表中读取;
range:只检索给定范围的行,使用一个索引来选择行。当使用=、<>、>、>=、<、<=、IS NULL、<=>、BETWEEN或者IN操作符,用常量比较关键字列时,可以使用range;
index:该联接类型与ALL相同,除了只有索引树被扫描。这通常比ALL快,因为索引文件通常比数据文件小;
all:全表扫描;
实际sql优化中,最后达到ref或range级别。

2、Extra常用关键字
Using index:只从索引树中获取信息,而不需要回表查询;

Using where:WHERE子句用于限制哪一个行匹配下一个表或发送到客户。除非你专门从表中索取或检查所有行,如果Extra值不为Using where并且表联接类型为ALL或index,查询可能会有一些错误。需要回表查询。

Using temporary:mysql常建一个临时表来容纳结果,典型情况如查询包含可以按不同情况列出列的GROUP BY和ORDER BY子句时;

索引原理及explain用法请参照前一篇:MySQL索引原理,explain详解

二、触发索引代码实例
1、建表语句 + 联合索引
CREATE TABLE `student` (
  `id` int(10) NOT NULL,
  `name` varchar(20) NOT NULL,
  `age` int(10) NOT NULL,
  `sex` int(11) DEFAULT NULL,
  `address` varchar(100) DEFAULT NULL,
  `phone` varchar(100) DEFAULT NULL,
  `create_time` timestamp NULL DEFAULT NULL,
  `update_time` timestamp NULL DEFAULT NULL,
  `deleted` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `student_union_index` (`name`,`age`,`sex`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2、使用主键查询


3、使用联合索引查询


4、联合索引,但与索引顺序不一致


备注:因为mysql优化器的缘故,与索引顺序不一致,也会触发索引,但实际项目中尽量顺序一致。

5、联合索引,但其中一个条件是 >


6、联合索引,order by


where和order by一起使用时,不要跨索引列使用。
尚学堂给同学们带来全新的Java300集课程啦!java零基础小白自学Java必备优质教程_手把手图解学习Java,让学习成为一种享受_哔哩哔哩_bilibili

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MySQL是一种开源的关系型数据库管理系统,是Web开发中最常用的数据库之一。以下是学习MySQL基础知识的几个关键点: 1. 数据库基础知识 你需要了解以下的基础知识: - 数据库的概念和特点 - 数据库管理系统(DBMS)和关系型数据库管理系统(RDBMS) - SQL语言的基础知识,包括SELECT、INSERT、UPDATE和DELETE等基本操作 2. 数据库设计 在设计数据库时,你需要考虑以下问题: - 数据库范式:数据库范式是一种规范化的设计方法,用于减少数据冗余和提高数据一致性。 - 数据库表的设计:如何分解数据,创建关联表以及定义主键和外键等。 - 数据库索引:索引可以提高数据库查询效率,你需要了解如何创建索引并选择正确的索引类型。 3. 数据库管理 在管理数据库时,你需要了解以下的内容: - 数据库安装和配置 - 数据库备份和恢复 - 数据库性能调整,包括查询优化、索引优化、缓存优化等。 - 数据库安全,包括用户管理、权限管理和数据加密等。 4. 数据库编程 在应用程序中,你需要使用编程语言来访问数据库。以下是一些你需要了解的内容: - 数据库连接:如何连接到数据库并执行SQL查询。 - 数据库事务:如何使用事务来保证数据的一致性。 - 数据库异常处理:如何处理数据库操作中可能出现的异常。 5. MySQL工具和技术 MySQL有许多工具和技术,可以帮助你更有效地管理和使用数据库,例如: - MySQL Workbench:一个用于管理和开发MySQL数据库的集成开发环境(IDE)。 - phpMyAdmin:一个用于管理MySQL数据库的Web界面。 - MySQL Cluster:一个用于处理大数据和高可用性需求的分布式数据库系统。 - MySQL Replication:一个用于复制MySQL数据的技术,用于实现数据备份和负载均衡等。 以上是MySQL基础知识的一些关键点,掌握这些知识可以帮助你更好地理解和使用MySQL数据库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值