MySql优化(持续更新!)

本文介绍了MySQL数据库在处理大量数据时的优化策略,包括选择需要的列而不是使用`select *`,避免索引失效和全表扫描,如避免在查询条件中进行计算和使用`or`,建议使用`union`替代,以及利用`limit`限制返回结果的数量。同时,展示了如何用行转列的方法处理数据。
摘要由CSDN通过智能技术生成

在面对非常大数据量的工作下,不仅要准确查询出想要的结果,对它们的优化也是非常重要的,主要从以下几方面来考虑:
1)查询需要的列 代替 select *
当一个表中的数据有数万、数百万时,查询出列表中的所有列开销非常大,尤其是表做 join 连接时,更要避免这种情况;
2)避免索引失效的情况 AND 避免全表扫描的情况
(1) 表达式左边有计算(表达式、函数)
例如 where 年龄+5>30 VS 年龄>30-5,右边的性能更高
(2)避免使用 or 字段
or字段会导致数据库选项进行全表扫描。如果遇到有或者逻辑的查询需求时,可以选用union方式来代替,第二种方式会快很多。例:
select 名字 from 员工表 where 年龄=25 or 年龄=26 VS
select 名字 from 员工表 where 年龄=25 union select 名字 from 员工表 where 年龄=26
(3) 使用limit子句限制返回的数据行数
如果需要的数据行数 有明确要求,使用limit 来限制返回的数据行数比较好。

         **行列 转换的例子:**   
         年级   班级   人数              年级     c1      c2    c3      c4      c5
           1       c1        20                 1        20     25    28      25     35                                          
           1       c2       25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值