`
fackyou200
  • 浏览: 309544 次
  • 性别: 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数据库的查询性能优化研究.pdf

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

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

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

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

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

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

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

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

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

    MySQL数据库相关课件PPT

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

    MySQL数据库练习题(50道).pdf

    MySQL数据库练习题50道.pdf 本资源为MySQL数据库练习题,共50道题,涵盖数据库设计、数据表创建、数据插入、查询等多方面的知识点。下面是对该资源的详细知识点总结: 一、数据库设计 * 数据库设计是指根据具体的...

Global site tag (gtag.js) - Google Analytics