MySQL主键、创建索引、UNION 和 UNION ALL

日萌社

人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新)



主键


索引

ALTER TABLE 表名 ADD INDEX 索引名称 (一个或多个字段名(字段的长度size))

短索引(可以设置字段的长度size):ALTER TABLE 表名 ADD INDEX 索引名称 (一个或多个字段名(字段的长度size))

MySQL数据库的使用索引来搜索

1.MySQL数据库中的索引:
	UNIQUE(唯一索引)
	PRIMARY KEY(主键索引),本质是名叫PRIMARY KEY 的UNIQUE索引
	INDEX(普通索引)
	INDEX(组合索引)
	FULLTEXT(全文索引),搜索引擎常用

2.MySQL数据库的模糊查询速度慢,效率不高。
  模糊查询的用法分析:
	1.模糊查询的用法:字段名 like “%搜索内容%”
   	2.对“已添加索引的字段”进行模糊查询的话,分以下情况:
		1.使用 字段名 like “%搜索内容%”或 字段名 like “%搜索内容”的话,即模糊查询LIKE中以“%”或“_”开头的话,
		  是无法使用到索引进行快速查询的。
		2.使用 字段名 like “搜索内容%”,是可以使用到索引进行快速查询的。
 
3.即使字段添加了索引,但是在SQL语句中使用了以下规则进行WHERE条件过滤的话,便不会使用上“字段中添加的索引”进行快速查询:
	1.NULL值判断:因为使用NULL值判断的话,则不会使用字段中的索引。
		      所以字段的默认值应改为使用 0 或 -1 或 空字符串,字段的默认值不应为NULL值。
 	2.使用 != 或 <> 操作符:!= 和 <> 都表示不等于操作,则不会使用字段中的索引。应改为尽量使用 >、<、= 才会使用上字段中的索引。
	3.模糊查询LIKE中以“%”或“_”开头:是不会使用字段中的索引的。但如果以“%”或“_”结尾的话,还是可以使用到索引的。
	  				    可改为使用FULLTEXT(全文索引),搜索引擎常用。
	4.在where子句中使用 or 来连接条件:应使用UNION 或 UNION ALL 
	5.in 和 not in:尽量控制in的范围(1000以内)
	6.在where子句中对字段进行表达式操作:在列上进行运算的话,则不会使用字段中的索引

在where子句中使用 or 来连接条件:应使用UNION 或 UNION ALL 


SQL UNION 和 UNION ALL 操作符

1.UNION:
	1.合并两个或多个 SELECT 语句的结果集
	2.会对合并后的结果集进行去重

2.UNION ALL:
	1.合并两个或多个 SELECT 语句的结果集
	2.不会对合并后的结果集进行去重

 

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

あずにゃん

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值