`
alph0618
  • 浏览: 54807 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

mysql优化

 
阅读更多

一、sql优化原则:

  • 使用EXPLAIN分析;
  • 使用小结果集驱动大结果集;
  • 尽可能在索引中完成排序;
  • 只取出需要的字段;
  • 尽可能避免复杂的join和子查询。

二、sql优化

1、创建索引;

      创建组合索引时,选择范围较小的字段放到前面。

2、分页:先分页查出主键,再使用inner join查询,如:

select id,name from user t inner join (select id from user u limit 1000000,100) a on t.id=a.id

 3、当只查询一行数据时加上:

LIMIT 1

    因为找到一条记录时就会返回,不会再查询下去。

 4、使用join关联查询时,使用相同类型的字段进行匹配,这样可以用到索引。

 5、保存IP地址时,把IP地址保存为UNSIGNED INT

       因为使用字符串存IP地址时设置数据类型和长度为: VARCHAR(15) ,占用30个字节,而如果用整形来存放,只需要4个字节,并且可以有定长的字段。而且,这还会带来查询上的优势,尤其是需要使用如下的WHERE条件:

IP between ip1 and ip2

 6、时间字段类型选择,

      datetime类型时间范围:1000-01-01 00:00:00 到 9999-12-31 23:59:59,占8个字节。

      timestamp类型时间范围:1970-01-01 00:00:00 到 2037-12-31 23:59:59,占4个字节,具有初始化和自动更新特性。

`FUpdateDate` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP

 

 

 误区:

1、where条件的顺序对性能有影响。---答案是没有影响,但建立索引的顺序有。

 

 

三、配置优化

MySQL参数的优化:内存中会为MySQL保留部分的缓冲区。这些缓冲区可以提高MySQL的速度。缓冲区的大小都是在MySQL的配置文件中进行设置的。

key_buffer_size:表示索引缓存的大小。这个值越大,使用索引进行查询的速度就越快

table_cache:表示同时打开的表的个数。这个值越大,能同时打开的表的个数就越多。这个值不是越大越好,因为同时打开的表过多会影响操作系统的性能。

query_cache_size:表示查询缓冲区的大小。使用查询缓存区可以提高查询的速度。这个方式只使用与修改操作少且经常执行相同的查询操作的情况;默认值是0.

Query_cache_type:表示查询缓存区的开启状态。0表示关闭,1表示开启。

Max_connections:表示数据库的最大连接数。这个连接数不是越大越好,因为连接会浪费内存的资源。

Sort_buffer_size:排序缓存区的大小,这个值越大,排序就越快。

Innodb_buffer_pool_size:表示InnoDB类型的表和索引的最大缓存。这个值越大,查询的速度就会越快。这个值太大了就会影响操作系统的性能。

 

四、事务优化

  • 脏读:一个事务对数据进行了修改,但还没有提交到数据库中,这时另一个事务也访问了同一份数据。
  • 不可重复读:在一个事务内多次读取同一份数据。在这个事务还没有结束时,另一个事务也读取了这份数据。那么,在第一个事务读取数据之间,第二个事务对这个数据进行了修改,这个时候第一个事务两次读取的数据就可以不一样。这样就发生了一个事务内两次读取的数据不一样,即不可重复读。
  • 幻读:
分享到:
评论

相关推荐

    mysql优化笔记+资料

    以下是一份详细的MySQL优化笔记,涵盖了多个方面: 一、查询优化 1. 使用索引:为经常用于搜索的列创建索引可以显著加快查询速度。B树和哈希索引是最常见的类型,适用于不同的查询场景。 2. 避免全表扫描:尽量使用...

    mysql优化配置大全

    mysql慢可能是配置不对,阅读一下这个可能对你有帮助 ...对于Discuz!... 下面我们了解一下MySQL优化的一些基础,MySQL的优化我分为两个部分,一是服务器物理硬件的优化,二是MySQL自身(my.cnf)的优化。

    php之mysql优化

    以下将详细介绍MySQL优化的各个方面,并结合提供的文件名进行推测,尽管没有实际内容,但我们可以根据文件名来讨论可能涉及的主题。 1. **索引优化**:`mysql_rel.sql`可能包含SQL脚本,其中创建表结构和数据的关系...

    mysql优化.pdf

    在进行MySQL优化时,我们需要对数据库进行深入分析,以便找到性能瓶颈并进行相应的调整。优化可以分为三个主要部分:优化概述、查询与索引优化分析以及配置优化。 首先,在优化概述部分,了解MySQL数据库常见瓶颈是...

    MySql优化.rar

    在"MySQL优化.rar"这个压缩包中,我们很显然会接触到关于MySQL数据库优化的详细内容,这包括但不限于查询优化、索引优化、存储引擎选择、架构设计等多个方面。 首先,查询优化是MySQL性能提升的关键步骤。通过对SQL...

    mysql 优化工具.rar

    为什么要开发这个MySQL 优化工具(Why)   “一键优化”功能,可以优化本地/远程需要优化的机器,将繁琐的优化工作“傻瓜”式操作 根据您的业务需求Step By Step优化的MySQL服务器参数,起到指引的作用,简化用户...

    深入浅出的mysql优化大全

    以下是一些深入浅出的MySQL优化策略: 1. 选择合适的字段属性: 在设计数据库表时,应尽可能减小字段宽度,以减少存储空间和查询时间。例如,邮政编码字段只需设定为CHAR(6)即可,无需使用VARCHAR或更大的类型。...

    MySql优化.pdf

    MySQL优化是数据库管理中至关重要的环节,它涉及到提升查询性能、降低资源消耗,从而提高整个系统的响应速度和服务质量。MySQL自带的慢查询日志(slow query log)是进行优化的重要工具之一,它记录了执行时间超过预设...

    Mysql优化方法介绍.ppt

    MySQL 优化方法主要涵盖...总之,MySQL优化涉及多个层面,包括合理选择存储引擎、优化字段类型、建立合适索引以及编写高效的SQL语句。每个环节都对数据库性能有着直接影响,需要根据实际业务需求进行综合考虑和调整。

    MySQL优化.docx

    ### MySQL优化知识点详解 #### 一、MySQL简介 MySQL是一款由MySQL AB公司开发的开源数据库管理系统,后来该公司被Sun Microsystems收购。MySQL因其简单、高效、可靠的特点,在IT行业中迅速崭露头角,成为最受欢迎...

    MYSQL优化-一篇很好的优化文章

    21. MYSQL扩展/优化-提供更快的速度 22. MYSQL何时使用索引 23. MYSQL何时不使用索引 24. 学会使用EXPLAIN 25. 学会使用SHOW PROCESSLIST 26. 如何知晓MYSQL解决一条查询 27. MYSQL非常不错 28. MYSQL应避免...

    我的mysql 优化日记

    我的mysql优化日记 我的mysql优化日记 我的mysql优化日记 我的mysql优化日记

    MySQL优化大揭秘.rar

    MySQL优化是数据库管理中至关重要的一个环节,它旨在提高数据查询效率、降低系统资源消耗,以确保服务的稳定性和响应速度。"MySQL优化大揭秘"这个压缩包中的"SQL.pdf"很可能包含了关于如何优化MySQL数据库的详细教程...

    mysql优化-sql高级

    mysql优化从以下几个方面介绍 mysql的架构 索引优化分析 查询截取分析 mysql锁机制 主从复制

    Mysql优化 PPT

    MySQL优化是数据库管理中的关键环节,它涉及到性能提升、资源利用率优化以及系统稳定性的保障。这份"Mysql优化 PPT"可能会涵盖多个方面的内容,包括但不限于查询优化、索引策略、存储引擎选择、数据库架构设计、资源...

    大型门户网站核心技术-Mysql优化

    教程名称:大型门户网站核心技术-Mysql优化 课程目录:【】Mysql优化 资料【】Mysql优化01关键技术【】Mysql优化02表的设计【】Mysql优化03慢查询(一)【】Mysql优化04慢查询(二)【】Mysql优化05慢查询(三)【】Mysql...

    企业级MySQL优化(从引擎为你介绍怎么优化、集群方案)

    总结来说,企业级MySQL优化是一个综合性的任务,涵盖安装配置、引擎选择、算法理解、集群构建和日常维护等多个环节。通过深入理解MySQL的工作机制和优化技巧,可以有效地提升数据库性能,保障企业的业务运行。

Global site tag (gtag.js) - Google Analytics