mysql 索引设置语法

本文详细介绍了数据库索引的使用,包括查看、创建、删除索引的语法,并提供了索引优化的建议,如避免NULL值、使用短索引、优化WHERE条件等。同时,也分享了SQL查询性能优化技巧,如避免通配符查询、善用连接和缓存,以及如何分析和优化慢查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

索引语法

-- 查看索引
show INDEX from `user`

-- 设置普通索引
ALTER TABLE 表名 ADD INDEX 索引名 (表字段(字段长度))
实例:
ALTER TABLE cloud_cube_member.member_level_record ADD INDEX idx_after_level_name ( after_level_name(24)) ;

-- 设置多列唯一索引 表名 索引名  列名

ALTER TABLE `user` add UNIQUE INDEX `user_name` (`name`,`model`) USING BTREE 

-- 删除索引 索引名 on 表名

DROP INDEX user_name ON user



索引优化建议

      只要列中含有NULL值,就最好不要在此例设置索引,复合索引如果有NULL值,此列在使用时也不会使用索引

      尽量使用短索引,如果可以,应该制定一个前缀长度

      对于经常在where子句使用的列,最好设置索引

      对于有多个列where或者order by子句,应该建立复合索引

      对于like语句,以%或者‘-’开头的不会使用索引,以%结尾会使用索引

      尽量不要在列上进行运算(函数操作和表达式操作)

      尽量不要使用not in和<>操作

SQL语句性能优化

   查询时,能不要*就不用*,尽量写全字段名
   
  大部分情况连接效率远大于子查询
  
  多表连接时,尽量小表驱动大表,即小表 join 大表

  在千万级分页时使用limit

  对于经常使用的查询,可以开启缓存

 多使用explain和profile分析查询语句

 查看慢查询日志,找出执行时间长的sql语句优化 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值