在sql里面有很多优化技巧,有时候能够实现相同功能的两段sql语句,查询性能却不相同,因此掌握一些高效的sql代码还是很有必要的。
一、查询优化
1. 减少记录集行数,避免select *
2. 使用exist代替in,例如:Select sno from stu where exist(select * from grand where sno=stu.sno)
3. 使用>=而不是>,添加等于后比较直接锁定最小或最大值,只写>, 则数据库会逐行进行比较。
4. 使用索引,但不要在索引上进行计算,当遇到or时索引失效,使用union代替or
5. 只查询一条数据的时候使用limit 1这样会使搜索到数据后继续进行搜索
6. 避免使用rand(),当查询数据想要乱序的时候,可以先生成一个随机数:
select userName from user limit $rand,1;
7. 查询join要使用小的结果集驱动大的结果集
8. 尽可能少使用子查询,子查询的过程会在内查询中先建立临时表,查询完成后删除临时表
iWebShop是一款基于PHP语言及MYSQL数据库开发的B2B2C多用户开源免费的商城系统,系统支持自营和多商家入驻、集成微信商城、手机商城、移动端APP商城、三级分销、视频电商直播、微信小程序等于一体,它可以承载大数据量且性能优良,还可以跨平台,界面美观功能丰富是电商建站首选源码。iWebShop开源商城系统 v5.14 更新日志:新增商品编辑页面规格图片上传优化商品详情页面规格图片与主图切
二、 从建库角度分析数据库优化策略
1.优化数据库结构,将数据库字段多的表水平划分多个表
2. 数据插入前禁用索引后开启:
ALTER TABLE table_name DISABLE KEYS ;
ALTER TABLE table_name ENABLE KEYS ;3. 使用批量插入语句:能使用LOAD DATA INFILE 语句就尽量使用,不能使用可以选择:
ALTER TABLE table_name ENABLE KEYS ;
以上就是MYSQL sql语句优化的详解的内容,更多相关内容请关注PHP中文网(www.php.cn)!









