MySql简答题

mysql的优化

1.sql语句以及索引的优化
(1)索引的优化
(1.1)对于表80%以上都是读的操作,可以创建索引多一些,但是不能超过五个,一般是3个左右,特别是对那种个别更新频繁的表,不能创建太多索引。过多的索引不但增加其占用的磁盘空间,也增加了SQL Server 维护索引的开销。
(1.2)定义有主键的列要建立索引
(1.3)定义有外键的列要建立索引
(1.4)经常查询的列建立索引
(1.5)经常出现在关键字order by、group by、distinct后面的字段,建立索引。如果建立的是复合索引,索引的字段顺序要和这些关键字后面的字段顺序一致,否则索引不会被使用。
(1.6) 对于经常存取的列避免建立索引
(2)sql语句的优化
(2.1)尽量少使用like模糊查询,如果必要使用,尽量避免前面有%。因为会走全表查询
(2.2)在where子句中使用 != 或 <>操作符,索引将被放弃使用,会进行全表查询。我们可以使用betwwen and代替
(2.3)在where子句中使用 IS NULL 或 IS NOT NULL 判断,索引将被放弃使用,会进行全表查询。我们可以把数据null编程0,条件是num=0,就可以了
(2.4)很多时候使用union all 或 nuin(必要的时候)的方式替换“or”会得到更好的效果。where子句中使用了or,索引将被放弃使用。
(2.5)left join替换in
(2.6)尽量用 union all 替换 union。union all不会进行去重,union去重效率比较慢
(2.7)不适用内连接,尽量使用外连接。左外连接和右外连接的使用要考虑表数据
2.数据库表结构的优化

选取最适用的字段属性,尽可能减少定义字段宽度,尽量把字段设置NOTNULL
使用连接(JOIN)来代替子查询
适用联合(UNION)来代替手动创建的临时表

3.系统配置的优化
4.硬件的优化

优化链接最全

https://www.cnblogs.com/lijiasnong/p/9963905.html

数据库再执行的时候怎么创建索引

删除重新创建
mysql中没有真正意义上的修改索引,只有先删除之后在创建新的索引才可以达到修改的目的,原因是mysq在创建索引时会对字段建立关系长度等,只有删除之后创建新的索引才能创建新的关系保证索引的正确性;

:将login_name_index索引修改为单唯一索引;
1| DROP INDEX login name_index ON 'user';
2 ALTER TABLE user. ADD UNIQUE login_name_index(login name ):
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值