MySQL优化建议汇总~~~

1、将经常要用到的字段(比如经常要用这些字段来排序,或者用来做搜索),则最好将这些字段设为索引

2、字段的种类尽可能用int或者tiny int类型。另外字段尽可能用not null

3、当然无可避免某些字段会用到text,varchar等字符类型,最好将text字段单独出另外一个表出来(用主键关联好)(能用枚举的就尽量不要用text,因为在MySQL中,ENUM类型被当作数值型数据来处理,而数值型数据被处理起来的速度要比文本类型快得多)

4、 字段的类型,以及长度,是一个很考究开发者优化功力的一个方面。如果表数据有一定的量了,不妨用PROCEDURE ANALYSE()命令来取得字段的优化建议!(在phpmyadmin里可以在查看表时,点击‘Propose table struture’来查看这些建议)如此可以让你的表字段结果趋向完善。

5、select * 尽量少用,你想要什么字段,就select什么字段出来,不要老是用*号!同理,只要一行数据时尽量使用limit 1

6、绝对不要轻易用order by rand(),很可能会导致mysql的灾难

7、每个表都应该设置一个ID主键,最好的是一个INT型,并且设置上自动增加的AUTO_INCREMENT标志,这点其实应该作为设计表结构的第一件必然要做的事!

8、拆分大的DELETE或INSERT语句,因为这两个操作是会锁表的,表一锁住了,别的操作都进不来了,就我来说有时候我宁愿用for循环来一个个执行这些操作

9、不要用永久连接mysql_pconnet();除非你真的非常肯定你的程序不会发生意外,不然很可能也会导致你的mysql死掉

10、永远别用复杂的mysql语句来显示你的聪明,就我来说看到一次关联了三四个表的语句,只会让人觉得很不靠谱(MySQL语句能简单就简单点)

参考博文:https://mp.weixin.qq.com/s/4U8xw9Q0cEStNfArjXQCIQ

了解一下Oracle中sql语句的执行过程,也有利于掌握Oracle的优化:

ORACLE将执行过的SQL语句存放在内存的共享池(shared buffer pool)中,可以被所有的数据库用户共享。当执行一个SQL语句时,如果它和之前的执行过的语句完全相同,ORACLE就能很快获得已经被解析的语句以及最好的执行路径.。这个功能大大地提高了SQL的执行性能并节省了内存的使用。

Oracle中SQL语句执行过程:

1.当一用户第一次提交一个SQL表达式时,Oracle会将这SQL进行Hard parse,检查语法、表名、字段名等相关信息,这过程会花比较长的时间,因为它要分析语句的语法与语义。然后获得最优化后的执行计划,并在内存中分配一定的空间保存该语句与对应的执行计划等信息。

2.当用户第二次请求或多次请求时,Oracle会自动找到先前的语句与执行计划,而不会进行Hard parse,而是直接进行Soft parse(把语句对应的执行计划调出,然后执行),从而减少数据库的分析时间。

那么在第一次运行的过程中,ORACLE sql 的处理过程大致如下:

1.运用HASH算法,得到一个HASH值。

2.到shared pool 中的 library cache 中查找是否有相同的HASH值,如果存在,则无需硬解析,进行软解析。

3.如果shared pool不存在此HASH值,则进行语法检查,查看是否有语法错误。

4.如果没有语法错误,就进行语义检查,检查该SQL引用的对象是否存在,该用户是否具有访问该对象的权限。

5.如果没有语义错误,对该SQL进行解析,生成解析树,执行计划。

6.生成ORACLE能运行的二进制代码,运行该代码并且返回结果给用户。

注意:Oracle中只能完全相同的语句,包大小写、空格、换行都要求一样时,才会重复使用以前的分析结果与执行计划。

分析过程如下图:

对于大量的、频繁访问的SQL语句,如果不采用Bind 变量的方式,Oracle会花费大量的Shared latch与CPU在做Hard parse处理。

所以,要尽量提高语句的重用率,减少语句的分析时间,通过了解Oracle SQL语句的分析过程可以明白Oracle的内部处理逻辑,并在设计与实现上进行SQL语句优化。

参考博文:https://mp.weixin.qq.com/s/O6bWmIOFk6KGrrW4uBeMTA

几种常用的SQL优化技巧。

WHERE下多个过滤条件的排列顺序

重复记录的处理

WHERE、HAVING和ON的比较

灵活使用EXISTS关键字

UNION ALL和UNION

表关联的优化

参考博文:https://mp.weixin.qq.com/s/NfwWibH7JO1w98OiHJcxyg(有实例,挺详细的)

MySQL优化建议汇总~~~相关推荐

  1. mysql优化案例,mysql优化实例汇总

    目录 1.推荐文章与标签关系联表查询优化 目的查询带有指定标签的所有文章信息 sql写法1 SELECT DISTINCT qa.id as id,`title`,`banner`,`stime`,` ...

  2. 从原理上理解MySQL的优化建议

    概述 自从学习 MySQL 以来,我们一直听到或者看到很多优化建议,比如说不要用 select * 查询,用什么字段就查什么字段:建议用自增主键来作为表的主键,等等.这些建议听得很多感觉都成了 MyS ...

  3. MySQL · 性能优化· CloudDBA SQL优化建议之统计信息获取

    阿里云CloudDBA具有SQL优化建议功能,包括SQL重写建议和索引建议.SQL索引建议是帮助数据库优化器创造最佳执行路径,需要遵循数据库优化器的一系列规则来实现.CloudDBA需要首先计算表统计 ...

  4. mysql 结构优化建议_MySQL优化之表结构优化的5大建议(数据类型选择讲的很好)...

    殊不知,在N年前被奉为"圣经"的数据库设计3范式早就已经不完全适用了.这里我整理了一些比较常见的数据库表结构设计方面的优化技巧,希望对大家有用. 由于MySQL数据库是基于行(Ro ...

  5. mysql 双缓冲_Mysql一些好的优化建议(二)

    MySQL是一个强大的开源数据库.随着MySQL上的应用越来越多,MySQL逐渐遇到了瓶颈.这里提供 101 条优化 MySQL 的建议.有些技巧适合特定的安装环境,但是思路是相通的.我已经将它们分成 ...

  6. MySQL优化调优有没有做过_MySQL 调优/优化的 100 个建议

    MySQL是一个强大的开源数据库.随着MySQL上的应用越来越多,MySQL逐渐遇到了瓶颈.这里提供 101 条优化 MySQL 的建议.有些技巧适合特定的安装环境,但是思路是相通的.我已经将它们分成 ...

  7. MySql 优化的 30 条建议

    文章来源:包子博客 MySql 优化的 30 条建议 1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 2.对查询进行优化,应尽量避免全表扫 ...

  8. MYSQL优化汇总——学习入口

    mysql优化的方式总的有以下几种方式 1.msql服务器硬件的优化:单核CPU变成多核,加内存,这一般是运维干的事情. 2.mysql服务的配置参数的优化: 3.sql语句本身的优化: 4.数据库设 ...

  9. mysql advisor github_GitHub - zyw/sqladvisor-web: 美团SQLAdvisor SQL优化建议工具的Web版,告别命令行...

    sqladvisor-web 美团SQLAdvisor SQL优化建议工具的Web版,告别命令行. 项目中使用的美团SQL分析工具是在CentOS上编译的,所以建议部署到CentOS上. 该项目是使用 ...

最新文章

  1. virtualbox centos5 分辨率_一种高分辨率、高帧率的LCoS显示芯片设计方法
  2. 实现权限控制_在 Go 语言中使用 casbin 实现基于角色的 HTTP 权限控制
  3. easyui树拖拽排序java_easyui tree 拖拽功能并将数据返回后台保存至数据库
  4. mysql函数和索引冲突问题_Mysql索引常见问题汇总
  5. 【 Grey Hack 】综合工具 shellOs
  6. android点击加号,Android仿微信朋友圈点击加号添加图片功能
  7. windows无法访问_注册CourseMaker之后无法登录,显示“网络无法访问……”,怎么办?...
  8. 数据库面试题之PL/SQL面试题
  9. Android聊天软件开发(基于网易云IM即时通讯)——发送图片消息(五)
  10. MISRAC系列之 Rule 1.1-1.3 C语言环境
  11. Arduino 和 HC-SR04 超声波传感器 测距
  12. 渥太华大学计算机专业,渥太华大学计算机专业解析
  13. 美国签证面签准备材料清单
  14. 为黑苹果解锁AirDrop功能和蓝牙以及WI-FI
  15. 干货|建模3D Max中常见问题
  16. cad修改快捷键_CAD入门学习技巧:CAD软件中的CAD快捷键的分类
  17. 数据结构之树家族介绍
  18. 联想电脑使用“联想电脑管家”之后电脑频繁蓝屏
  19. 大公司研发部门普遍存在的问题(日常吐槽)
  20. udp攻击的PHP木马

热门文章

  1. L-BFGS算法/Broyden族/BFGS算法/阻尼牛顿法的Python实现代码
  2. 优秀小程序demo 源码
  3. mysql有没有实现高可用_MySQL高可用架构:mysql+keepalived实现
  4. 为什么要学python语言、学完有什么好处_学编程为什么首选Python?学完Python的优势有哪些?...
  5. telnet服务下载 Linux,linux telnet服务安装包
  6. 生活质量衡量系统_数据质量与数据质量八个维度指标
  7. bootstrap 导航菜单 折叠位置_python测试开发django44.xadmin自定义菜单项
  8. proxmoxve打造云桌面_微软云电脑Cloud PC曝光:配置一般还不便宜
  9. 番茄花园win11 32位官方原版镜像文件v2021.07
  10. 谷歌浏览器怎么禁用flash flash禁用方法分享