`
fackyou200
  • 浏览: 310823 次
  • 性别: Icon_minigender_1
  • 来自: 山西太原
社区版块
存档分类
最新评论

mysql数据库sql优化原则

 
阅读更多

这里的原则 只是针对mysql数据库,其他的数据库 某些是殊途同归,某些还是存在差异。我总结的也是mysql普遍的规则,对于某些特殊情况得特殊对待。在构造sql语句的时候养成良好的习惯

原则1、仅列出需要查询的字段,这对速度不会明显的影响,主要是考虑节省应用程序服务器的内存。

原来语句:select*from admin
优化为:select admin_id,admin_name,admin_password from admin

原则2、尽量避免在列上做运算,这样导致索引失效

原语句:select*from admin where year(admin_time)>2014优化为:select*from admin where admin_time>'2014-01-01'

原则3、使用JOIN 时候,应该用小的结果驱动大的结果(left join 左边表结果尽量小 如果有条件应该放到左边先处理,right join 同理反向),同事尽量把牵涉到多表联合的查询拆分多个query(多个连表查询效率低,容易到之后锁表和阻塞)

原来语句select*from admin left join log on admin.admin_id = log.admin_id where log.admin_id>10优化为:select*from(select*from admin where admin_id>10) T1 left join log on T1.admin_id = log.admin_id

原则 4、注意LIKE 模糊查询的使用, 避免使用 %% ,可以使用 后面带% ,双%是不走索引的

原来语句:select*from admin where admin_name like '%de%'优化为:select*from admin where admin_name >='de'and admin_nam <'df'(注意不是等效的这里试试提供优化的思路)

原则5、使用批量插入节省交互 (当如如果使用存储过程来处理批量的sql 各种逻辑是更好的选择)

原来语句:
insert into admin(admin_name,admin_password) values ('test1','pass1');
insert into admin(admin_name,admin_password) values ('test2','pass2');
insert into admin(admin_name,admin_password) values ('test3','pass3')优化为: 
insert into admin(admin_name,admin_password) values('test1','pass1'),('test2','pass2'),('test3','pass3')

原则6、limit 的基数比较大时使用between

原来语句:select*from admin order by admin_id limit 100000,10优化为:select*from admin where admin_id between 100000and100010 order by admin_id

原则7、不要使用rand函数获取多条随机记录

原来语句:select*from admin order by rand() limit 20优化为:select*from admin as t1 Join(select round(rand()*((select max(admin_id)from admin)-(select min(id)from admin))+(select min(id)from admin))as id)as t2 where t1.id>=t2.id order by t1.id limit

原则8、避免使用NULL

原则9. 不要使用 count(id) 使用 count(*)

原则10、不要做无谓的排序操作,而应该使用索引完成排序

数据库优化包括两个方面,一方面是sql 程序优化,另一方面是数据库配置的优化。另外在mysl 可以通过 以下语句来查看帮助sql进行优化

set@@profiling=1;select*from typecho_comments order mail limit 10,30;
show profiles;
show profile for query *
分享到:
评论

相关推荐

    mysql数据库sql优化原则(经验总结)

    这里的原则只是针对MySQL数据库,其他的数据库某些是殊途同归,某些还是存在差异。我总结的也是MySQL普遍的规则,对于某些特殊情况得特殊对待。在构造SQL语句的时候要养成良好的习惯。二、原则总结 原则1、仅列出...

    基于Mysql数据库的SQL优化

    ### 基于Mysql数据库的SQL优化 #### 一、表结构设计原则与存储引擎选择 ##### 1.1 表结构设计原则 - **选择合适的数据类型**:尽量选择固定长度的数据类型,例如使用`INT`而非`VARCHAR`来存储数字型数据,这有助...

    MySQL数据库设计、优化.pptx

    MySQL数据库设计与优化是数据库管理中的重要环节,它关乎到系统的性能、稳定性和可扩展性。本讲座由叶金荣分享,主要涵盖了多个关键方面,包括规范、基础规范、命名规范、库表规范、字段规范、索引规范以及开发环境...

    深入浅出MySQL数据库开发、优化与管理维护.doc

    在优化查询时,需要遵循一定的原则,例如,使用索引、优化 SQL 语句等。 事务处理 事务处理是数据库开发的重要步骤,需要考虑到数据的一致性和可靠性。在处理事务时,需要遵循一定的原则,例如,使用 COMMIT 和 ...

    mysql数据库性能优化

    ### MySQL数据库性能优化 #### 一、概览 在当今高度依赖互联网技术的世界里,数据库作为数据存储的核心组件,其性能直接影响着应用系统的响应速度和用户体验。MySQL作为一款广泛使用的开源关系型数据库管理系统,...

    MySql数据库性能优化

    MySql数据库性能优化 MySql数据库性能优化是指通过调整和优化数据库的各种参数、结构和查询语句,提高数据库的运行速度和效率,减少资源占用和系统瓶颈。下面将详细介绍MySql数据库性能优化的相关知识点。 什么是...

    mySQL数据库性能优化pdf.pdf

    总结起来,MySQL数据库的性能优化需要从多个角度考虑,包括但不限于系统配置调整、数据库结构设计、编写高效的SQL语句、合理使用查询缓存、维护合理的索引策略等。在实际工作中,通过不断监控数据库的性能,结合具体...

    大道相通,得鱼忘筌 - 从Oracle的SQL优化到MySQL的SQL优化.pdf

    接下来,我们将探讨Oracle和MySQL在SQL优化方面的共性和差异性,以及这些知识如何帮助数据库管理员(DBA)在不同环境中实施有效的SQL优化。 首先,我们要明确两个数据库系统的基本架构。Oracle数据库是一个功能强大...

    mysql数据库设计原则

    本文将深入探讨MySQL数据库设计的关键原则,包括但不限于索引的合理使用、SQL语句优化技巧等。 #### 二、索引使用原则 索引是提高数据检索速度的有效工具之一,但在实际应用中如何高效地利用索引却是一门艺术。 -...

    mysql MySQL数据库开发优化与管理维护

    ### MySQL数据库开发优化与管理维护 #### 概览 本文档深入探讨了MySQL数据库的各个方面,包括开发、优化以及管理维护等内容。文档分为两大部分:第一部分主要关注于数据库的开发,介绍了如何选择合适的存储引擎、...

    基于MySQL数据库的查询性能优化研究.pdf

    本文主要介绍了 MySQL 数据库的查询执行过程,包括 SQL 语句的词法扫描、语法分析、语义检查、优化和执行等六个阶段,并分析了影响查询执行效率的客观因素。同时,本文还提出了几种实践可行的性能优化方法,能够保证...

    MySQL数据库相关课件PPT

    MySQL数据库是全球最受欢迎的开源关系型数据库管理系统之一,它以其高效、可靠和易于维护的特点,在Web开发、企业级应用和数据分析等领域广泛应用。本课件PPT涵盖了MySQL的基础知识到高级特性的深入理解,旨在帮助...

    MySQL数据库原理及应用(第2版)(微课版)-教学用数据库(Mysql数据库备份文件).zip

    在《MySQL数据库原理及应用(第2版)(微课版)》中,我们通常会深入探讨数据库的基本概念、设计原则以及实际操作技巧。这份教学资料包含了一个Mysql数据库的备份文件,为学习者提供了实践平台,便于理解和掌握...

    MySQL数据库原理及设计方法.pdf

    总的来说,MySQL数据库原理及设计方法涉及到网络通信、查询优化、并发控制、事务处理等多个层面,理解这些知识对于有效地使用和管理MySQL数据库至关重要。通过合理的设计和配置,可以确保MySQL在高并发环境下提供...

    C#实现MySQL数据库的备份、还原和初始化

    在C#编程中,与MySQL数据库的交互是常见的任务,特别是在开发管理系统的应用程序时。本文将详细介绍如何使用C#来实现MySQL数据库的初始化、备份和还原功能。 首先,数据库的初始化通常指的是创建一个新的数据库。在...

    mysql数据库优化经验

    MySQL数据库优化经验 MySQL 数据库优化是一个非常重要的方面,作为数据库管理员或开发者,了解如何优化数据库性能对于提高应用程序的速度和效率具有非常重要的意义。本文将从索引的角度来讲解 MySQL 数据库优化的...

    MySQL数据库习题和实践答案.rar

    MySQL数据库是世界上最受欢迎的开源关系型数据库之一,广泛应用于各种规模的企业、网站和应用程序中。这份"MySQL数据库习题和实践答案"的压缩包文件,很可能是为了帮助学习者加深对MySQL理论知识的理解并提高实际...

Global site tag (gtag.js) - Google Analytics