对于数据库,优化查询的方法

1.使用索引

  使用索引时,应尽量避免全表扫描,首先应考虑在 where 及 order by ,group by 涉及的列上建立索引。

2.优化SQL语句

 1)分析查询语句:通过对查询语句的分析,可以了解查询语句执行情况,找出查询语句执行的瓶颈,从而优化查询语句。

   通过explain(查询优化神器)用来查看SQL语句的执行结果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句。

   例如:explain select * from news;

 2)任何地方都不要使用select * from t ,用具体的字段列表代替“*”,不要返回用不到的任何字段。

 3)不在索引列做运算或者使用函数。

 4)查询尽可能使用 limit 减少返回的行数,减少数据传输时间和带宽浪费。

3.优化数据库对象

 1)优化表的数据类型

  使用 procedure analyse()函数对表进行分析,该函数可以对表中列的数据类型提出优化建议。表数据类型第一个原则是:使用能正确地表示和存储数据的最短类型。这样可以减少对磁盘空间、内存、CPU缓存的使用。

  使用方法:select * from 表名 procedure analyse();

 2)对表进行拆分

  通过拆分表可以提高表的访问效率。有两种拆分方法:

  a.垂直拆分(按照功能模块)

   将表按照功能模块、关系密切程度划分出来,部署到不同的库上。例如:我们会建立定义数据库workDB、商品数据库payDB、用户数据库userDB等,分别用于存储项目数据定义表、商品定义表、用户数据表等。

   把主键和一些列放在一个表中,然后把主键和另外的列放在零一个表中。如果一个表中某些列常用,而另外一个些不常用,则可以采用垂直拆分。

  b.水平拆分(按照规则划分存储

   当一个表中的数据量过大时,我们可以把该表的数据按照某种规则进行划分,例如userID散列,然后存储到多个结构相同的表和不同的库中。

   根据一列或者多列数据的值吧数据行放到两个独立的表中。

   

 3)使用中间表来提高查询速度

  创建中间表,表结构和源表结构完全相同,转移要统计的数据到中间表,然后在中间表上进行统计,得出想要的结果。

4.硬件优化

 1)CPU优化

  选择多核和主频高的CPU。

 2)内存的优化

  使用更大的内存。将尽量多的内存分配给MySQL做缓存。

 3)磁盘I/O的优化

  a.使用磁盘阵列

   RAID 0没有数据冗余,没有数据校验的磁盘陈列。实现RAID 0至少需要两块以上的硬盘,它将两块以上的硬盘合并成一块,数据连续地分割在每块盘上。

   RAID 1是将一个两块硬盘所构成RAID硬盘阵列,其容量仅等于一块硬盘的容量,因为另一块只是当作数据“镜像”。

   使用RAID-0+1磁盘阵列。RAID 0+1是RAID 0和RAID 1的组合形式。它在提供与RAID 1一样的数据安全保障的同时,也提供了与RAID 1近似的存储性能。

  b.调整磁盘调度算法

   选择合适的磁盘调度算法,可以减少磁盘的寻道时间。

5.MySQL自身的优化

  对MySQL自身的优化主要是对其配置文件my.cnf中的各项参数进行优化调整。如指定MySQL查询缓冲区的大小,指定MySQL允许的最大连接进程数等。

6.应用优化

 1)使用数据库连接池

 2)实用查询缓存

  它的作用是存储 select 查询的文本及其相应结果。如果随后收到一个相同的查询,服务器会从查询缓存中直接得到查询结果。查询缓存适用的对象是更新不频繁的表,当表中数据更改后,查询缓存中的相关条目就会被清空。

JDK资源合集

  • 【JDK5】jdk1.5x64位 windows版.zip
  • https://download.csdn.net/download/weixin_42350212/15381380
  • 【JDK6】jdk-6u45-windows-x64 jdk1.6 64位 Windows版
  • https://download.csdn.net/download/weixin_42350212/13668762
  • 【JDK7】jdk-7u72-windows-i586-32位
  • https://download.csdn.net/download/weixin_42350212/13675800
  • 【JDK8】jdk-8u131-linux-x64.tar.gz
  • https://download.csdn.net/download/weixin_42350212/13607316
  • 【JDK8】jdk-8u131-linux-x64.tar.gz
  • https://download.csdn.net/download/weixin_42350212/15809524

MySql数据库资源

  • mysql 5.7 64位安装包 windows版
  • https://download.csdn.net/download/weixin_42350212/13703523
  • mysql5.7 64位安装包 Linux版
  • https://download.csdn.net/download/weixin_42350212/13703482

Oracle数据库补丁合集

  • 【Oracle数据库官方下载】 OPatch补丁工具20.0+版本
  • https://download.csdn.net/download/weixin_42350212/15809703

Oracle客户端工具

  • oracle-instantclient19.6-basic-19.6.0.0.0-1.x86_64 rpm包合集
  • https://download.csdn.net/download/weixin_42350212/15808538
  • Oracle客户端x32位 windows版.zip
  • https://download.csdn.net/download/weixin_42350212/15352849

Oracle数据库合集【Linux+Windows】

  • Oracle10g数据库 Windows32位+Linux32位 合集
  • https://download.csdn.net/download/weixin_42350212/15898339
  • Oracle数据库10gx32位安装包 Linux版+client客户端
  • https://download.csdn.net/download/weixin_42350212/13703422
  • Oracle数据库11gx64位安装包 Linux版
  • https://download.csdn.net/download/weixin_42350212/13703380
  • Oracle数据库11gx64位+Windows版安装包+Oracle客户端+Plsql工具
  • https://download.csdn.net/download/weixin_42350212/13703335
  • Oracle 11G 11.2.0.3 客户端 for windows 64位
  • https://download.csdn.net/download/weixin_42350212/13675747
  • oracle 11g Linux64位安装包
  • https://download.csdn.net/download/weixin_42350212/13184187
  • oracle 11g Linux64位安装包
  • https://download.csdn.net/download/weixin_42350212/11247054
  • Linux版Oracle11g x32位 数据库安装包
  • https://download.csdn.net/download/weixin_42350212/10468316
  • spotlight_for_oracle_rac.5.0.1.1022.zip
  • https://download.csdn.net/download/weixin_42350212/12368596
  • Linux_Oracle客户端全部rpm包
  • https://download.csdn.net/download/weixin_42350212/13730264
  • Oracle12c客户端+plsql12
  • https://download.csdn.net/download/weixin_42350212/15932863

MySQL,优化查询的方法相关推荐

  1. Mysql简介和Mysql优化查询的方法

    MySQL 是瑞典的MySQL AB公司开发的一个可用于各种流行操作系统平台的关系数据库系统,它具有客户机/服务器体系结构的分布式数据库管理系统.MySQL 完全适用于网络,用其建造的数据库可在因特网 ...

  2. 数据库优化查询的方法以及大访问量到数据库时的优化

    一.数据库优化查询的方法 1.使用索引: 应尽量避免全表扫描,首先考虑在where 以及 order by  ,group  by 涉及的列上建立索引 2.优化SQL语句: 1>通过explai ...

  3. mysql 优化查询方法,优化MYSQL查询的详细方法

    优化MYSQL查询的详细方法 发布时间:2020-06-08 17:19:28 来源:PHP中文网 阅读:135 作者:三月 不知道大家之前对类似优化MYSQL查询的详细方法的文章有无了解,今天我在这 ...

  4. MySQL 处理海量数据时的一些优化查询速度方法

    在参与实际项目中,当 MySQL 表的数据量达到百万级时,普通的 SQL 查询效率呈直线下降,而且如果 where 中的查询条件较多时,其查询速度无法容忍.想想可知,假如我们查询淘宝的一个订单详情,如 ...

  5. Mysql处理海量数据时的一些优化查询速度方法

    由于在参与的实际项目中发现当mysql表的数据量达到百万级时,普通SQL查询效率呈直线下降,而且如果where中的查询条件较多时,其查询速度简直无法容忍.曾经测试对一个包含400多万条记录(有索引)的 ...

  6. MySQL 处理海量数据时一些优化查询速度方法

    1.应尽量避免在where子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 2.对查询进行优化,应尽量避免全表扫描,首先应考虑在where及order by设计的列上建立 ...

  7. mysql优化步骤及方法

    1.优化步骤 1.开启慢查询日志,设置阈值,比如超过五秒的就是慢sql,并将它抓取出来 慢查询日志,是mysql提供的一种日志记录,它用来记录mysql中响应超过阈值的语句,具体指运行时间超过long ...

  8. mysql子查询的方式_分布式系统中一种迭代处理MYSQL子查询的方法

    1.技术背景 1.1 背景技术 在分布式mysql中间件系统,DML语句中,子查询需要可能涉及到多个数据分片,如果在DML语句使用子查询,需要首先解析出子查询的具体内容,然后根据路由把子查询发往到各个 ...

  9. MySQL慢查询分析方法

    MySQL5.0以上的版本可以支持将执行比较慢的SQL语句记录下来. MySQL> show variables like 'long%'; 注:这个long_query_time是用来定义慢于 ...

最新文章

  1. windows防火墙支持FTP服务的设置方法
  2. docker: 解决centos7下cgroup.procs: no such device的错误
  3. SuSE 10 Enterprise 下 Oracle 10g 关于找不到initorcl.ora文件和控制文件问题
  4. VTK:图表之VisualizeGraph
  5. OpenGL天空游戏
  6. 什么叫「人的格局」?是否有必要培养大的格局或怎么培养?
  7. Java面向对象(5)--类的成员构造器(构造方法)
  8. mysql 查看锁表日志_MYSQL 表锁情况查看
  9. linux time
  10. c++ 转bcd码_还不会看汽车自诊断系统的故障码?三分钟教你怎么解决
  11. fso 拒绝访问_CTBS问题及解决.docx
  12. 【ARM】Linaro Security module
  13. 服务器数据恢复成功案例(磁盘阵列恢复)
  14. AUTOSAR架构软件结构简介
  15. Git学习笔记使用记录
  16. 地球形状与重力场简述总结
  17. C++对象模型-读书笔记
  18. 糗事百科 android源码,仿糗事百科Android客户端源码
  19. win32bridge.server.exe函数不正确解决方案
  20. ei eo eq什么意思_软件功能点估算

热门文章

  1. 无人驾驶出租车已经在北京全面开放,未来普通人还需要学驾照吗?
  2. All Things Intelligence—Baidu World 2020
  3. 矩阵的最大路径和问题
  4. 引领性指标与滞后性指标_测量可用性组同步滞后
  5. azure云数据库_如何使用Cloud Shell创建Azure SQL数据库
  6. sql机器学习服务_机器学习服务–在SQL Server中配置R服务
  7. sql server 群集_SQL Server 2014 –安装群集实例–分步(3/3)
  8. MySQL复习值代码知识点(2)
  9. MongoDB DBA 实践6-----MongoDB的分片集群部署
  10. JavaScript基础学习(一)—JavaScript简介