- 浏览: 68796 次
- 性别:
- 来自: 南京
文章分类
最新评论
这里的原则 只是针对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'
<!--more-->
原则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 100000 and 100010 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 *
转载自:http://www.9958.pw/post/mysql_sql
发表评论
-
项目管理之如何控制项目进度和质量
2016-07-16 22:37 606控制项目进度和质量首先在整体上要有一个合理清晰的流程,并且在整 ... -
15 个非常棒的 CSS3 效果教程
2016-07-03 20:42 5881. 创建一个漂亮的图标 这个教程将教你如何用纯 C ... -
前20名的不安全密码(需要避免)
2016-07-01 21:41 514下图举例说明了一些人们作出选择密码时最常用的错误,以及如何使你 ... -
js实现图片放大缩小后进行的复杂排序
2016-06-30 21:57 584首先,我们来讲下需求: 1.图片分为大小和小图,大图占四个小 ... -
史上最全ajax(原生JS,javascript版,非jquery)详细注释!
2016-06-29 22:31 810史上最全ajax详细注释!(原生JS,javascript版, ... -
php千万级pv架构经验分享
2016-06-28 22:04 1294转载自:http://www.9958.pw/post/ph ... -
ecshop 时间问题请注意 /data/config.php
2016-06-27 22:43 866ecshop 处理时间,绕来绕去, 后台的时区设置, 并非以 ... -
目前比较流行的二维码的生成
2016-06-26 23:55 584最近比较流行二维码,自己百度了一下发现有一个很不错的实现方法使 ... -
如何阻止移动设备(手机,pad)浏览器双击放大网页?
2016-06-24 22:29 1214现在的手机或平板电脑等移动设备上的浏览器默认都有双击放大的设置 ... -
PHP解决Xss跨域攻击以及sql注入等危险字符串方案类库
2016-06-19 21:45 778由于该模块在项目中的要求是 不能提示任何信息,也不作断点操作, ... -
网站敏感骂人词库及算法(附6仟个敏感词)
2016-06-16 22:07 5885原文:「我今天开着张三丰田去上班 」 strtr:「我今天开 ... -
jQuery制作元素在屏幕中水平垂直居中效果
2016-06-14 21:56 599jQuery.fn.center = function () ... -
纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等)
2016-06-11 21:32 9761、正方形 CSS代码如下: #square { widt ... -
分享一个JQuery写的点击上下滚动的小例子
2016-06-08 22:00 502效果图 演示地址 源码下载 <!--more--> ... -
精美的国外扁平化网页设计作品
2016-06-05 16:02 598Who Wanna <!--more--> ... -
提交您的博客到各大网站
2016-06-03 21:04 381各大搜索引擎网站登录入口: Google收录入口:http:/ ... -
推荐7个 CSS3 制作的创意下拉菜单效果
2016-06-02 22:15 4011. 使用 jQuery 和 CSS3 制作向下滑动的导航菜单 ... -
Dev Http Client(Chrome的HTTP插件)
2016-05-31 22:34 754Dev Http Client(Chrome的HTTP插件) ... -
好的用户界面-界面设计的一些技巧
2016-05-29 16:24 4021 尽量使用单列而不是 ... -
项目组制定的一份页面优化指南
2016-05-27 21:40 3631.文档声明 文档声明必须置于网页的HTML部分的最开始,标签 ...
相关推荐
这里的原则只是针对MySQL数据库,其他的数据库某些是殊途同归,某些还是存在差异。我总结的也是MySQL普遍的规则,对于某些特殊情况得特殊对待。在构造SQL语句的时候要养成良好的习惯。二、原则总结 原则1、仅列出...
### 基于Mysql数据库的SQL优化 #### 一、表结构设计原则与存储引擎选择 ##### 1.1 表结构设计原则 - **选择合适的数据类型**:尽量选择固定长度的数据类型,例如使用`INT`而非`VARCHAR`来存储数字型数据,这有助...
MySQL数据库设计与优化是数据库管理中的重要环节,它关乎到系统的性能、稳定性和可扩展性。本讲座由叶金荣分享,主要涵盖了多个关键方面,包括规范、基础规范、命名规范、库表规范、字段规范、索引规范以及开发环境...
在优化查询时,需要遵循一定的原则,例如,使用索引、优化 SQL 语句等。 事务处理 事务处理是数据库开发的重要步骤,需要考虑到数据的一致性和可靠性。在处理事务时,需要遵循一定的原则,例如,使用 COMMIT 和 ...
### MySQL数据库性能优化 #### 一、概览 在当今高度依赖互联网技术的世界里,数据库作为数据存储的核心组件,其性能直接影响着应用系统的响应速度和用户体验。MySQL作为一款广泛使用的开源关系型数据库管理系统,...
MySql数据库性能优化 MySql数据库性能优化是指通过调整和优化数据库的各种参数、结构和查询语句,提高数据库的运行速度和效率,减少资源占用和系统瓶颈。下面将详细介绍MySql数据库性能优化的相关知识点。 什么是...
总结起来,MySQL数据库的性能优化需要从多个角度考虑,包括但不限于系统配置调整、数据库结构设计、编写高效的SQL语句、合理使用查询缓存、维护合理的索引策略等。在实际工作中,通过不断监控数据库的性能,结合具体...
接下来,我们将探讨Oracle和MySQL在SQL优化方面的共性和差异性,以及这些知识如何帮助数据库管理员(DBA)在不同环境中实施有效的SQL优化。 首先,我们要明确两个数据库系统的基本架构。Oracle数据库是一个功能强大...
本文将深入探讨MySQL数据库设计的关键原则,包括但不限于索引的合理使用、SQL语句优化技巧等。 #### 二、索引使用原则 索引是提高数据检索速度的有效工具之一,但在实际应用中如何高效地利用索引却是一门艺术。 -...
### MySQL数据库开发优化与管理维护 #### 概览 本文档深入探讨了MySQL数据库的各个方面,包括开发、优化以及管理维护等内容。文档分为两大部分:第一部分主要关注于数据库的开发,介绍了如何选择合适的存储引擎、...
本文主要介绍了 MySQL 数据库的查询执行过程,包括 SQL 语句的词法扫描、语法分析、语义检查、优化和执行等六个阶段,并分析了影响查询执行效率的客观因素。同时,本文还提出了几种实践可行的性能优化方法,能够保证...
在《MySQL数据库原理及应用(第2版)(微课版)》中,我们通常会深入探讨数据库的基本概念、设计原则以及实际操作技巧。这份教学资料包含了一个Mysql数据库的备份文件,为学习者提供了实践平台,便于理解和掌握...
MySQL数据库是全球最受欢迎的开源关系型数据库管理系统之一,它以其高效、可靠和易于维护的特点,在Web开发、企业级应用和数据分析等领域广泛应用。本课件PPT涵盖了MySQL的基础知识到高级特性的深入理解,旨在帮助...
总的来说,MySQL数据库原理及设计方法涉及到网络通信、查询优化、并发控制、事务处理等多个层面,理解这些知识对于有效地使用和管理MySQL数据库至关重要。通过合理的设计和配置,可以确保MySQL在高并发环境下提供...
在C#编程中,与MySQL数据库的交互是常见的任务,特别是在开发管理系统的应用程序时。本文将详细介绍如何使用C#来实现MySQL数据库的初始化、备份和还原功能。 首先,数据库的初始化通常指的是创建一个新的数据库。在...
MySQL数据库优化经验 MySQL 数据库优化是一个非常重要的方面,作为数据库管理员或开发者,了解如何优化数据库性能对于提高应用程序的速度和效率具有非常重要的意义。本文将从索引的角度来讲解 MySQL 数据库优化的...
MySQL数据库是世界上最受欢迎的开源关系型数据库之一,广泛应用于各种规模的企业、网站和应用程序中。这份"MySQL数据库习题和实践答案"的压缩包文件,很可能是为了帮助学习者加深对MySQL理论知识的理解并提高实际...
**3.1 SQL优化的原则** - **避免全表扫描**: 尽量避免使用`SELECT *`,只选取所需的列。 - **使用索引**: 确保经常使用的列上有索引。 - **简化查询**: 减少子查询和嵌套查询的使用。 **3.2 优化技巧** - **利用...