SQL优化小结

 

1.关于select * from t

尽量不要使用 select * from t,用具体的字段列表代替 “*”,不要返回用不到的任何字段;

2.建表时应注意

(1)查询应尽量避免全表扫描,首先应考虑在where及order by涉及的列上建立索引;

(2)尽可能的使用 varchar 代替 char ,因为首先变长字段存储空间小,可以节省存储空间,其次对于查询来说,在一个相对较小的字段内搜索效率显然要高些;

(3)尽量使用数字型字段,若只含数值信息的字段尽量不要设计为字符型,这会降低查询和连接的性能,并会增加存储开销。这是因为引擎在处理查询和连接时会逐个比较字符串中每一个字符,而对于数字型而言只需要比较一次就够了。

3.好的习惯要养成

(1)in 和 not in 要慎用,能用 between 就不要用 in,否则会导致全表扫描(有网友提醒新版本的in会走索引,待确认)

如:select id from t where num in(1,2,3)对于连续的数值,可改写为:select id from t where num between 1 and 3

(2)大多情况,用 exists 代替 in 是一个好的选择

select num from a where num in(select num from b)

用下面的语句替换:select num from a where exists(select 1 from b where num=a.num)

(3)大多情况,用union all 代替 or 是一个很好的选择。如查询结果集没有去重需求,尽量用union all,不要用union,因为union要进行重复值扫描,效率低。

如:select id from t where num=10 or num=20

可以改为这样查询:select id from t where num=10 union allselect id from t where num=20

4.关于索引使用要注意

(1)在使用索引字段作为条件时,如果该索引是联合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用,并且应尽可能的让字段顺序与索引顺序相一致。

(2)尽量选择区分度高的列作为索引(区分度高即字段不重复的比例大)。如一表中有字段sex,male、female几乎各一半,那么即使在sex上建了索引也对查询效率起不了作用。

(3)索引列不能参与计算,保持列“干净”。如:from_unixtime(create_time)='2014-05-29',索引列create_time将会失效,而且检索时会把所有元素都用函数后才能比较,显然成本太大。

(4)索引并不是越多越好,索引固然可以提高相应的 select 的效率,但同时也降低了 insert 及 update 的效率,因为 insert 或 update 时有可能会重建索引所以怎样建索引需要慎重考虑视具体情况而定,一个表的索引数最好不要超过6个。

(5)应避免where子句中  对字段进行null值判断、使用!=或<>操作符、使用 or 来连接条件,这些操作都会导致引擎放弃使用索引而进行全表扫描。

(6)模糊查询,除非必要,否则不要在关键词前加‘%’,否则会导致全表扫描。

如:select id from t where name like '%abc%',索引将会失效

(7)索引字段类型或字符集不一致也会导致索引失效。

5.关于连接查询

理论上,尽量使用多表连接(join)查询(避免子查询,如果一定使用,把查询条件往子查询中推送)

 

 

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值