数据库应用优化

基本语句优化的10个原则:

1、尽量避免在列上进行运算,这样会导致索引失败

2、使用join时,应该用小结果集驱动大结果集。同时把复杂的join查询拆分成多个query。因为join多个表时,可能导致更多的锁定和堵塞

3、注意like模糊查询的使用,避免%%

4、仅列出需要查询的字段,这对速度不会有明显的影响,主要考虑节省内存。

5、使用批量插入语句节省交互

6、limit的技术比较大时可以根据有序的字段排序然后获取

比如 select name from article where id > 上一次的值 order by id asc limit 10000;

循环获取

7、不要使用rand函数获取多条随机记录,如果要获取随机记录,可以获取多条id,然后 在php中打乱顺序取

8、避免使用null,在建表的时候,最好把每个字段都设置为not null。

9、不要使用count(id),而应该是count(*)

10、不要做无谓的排序操作,而尽可能的再索引中完成排序。

时间: 2024-07-30 20:50:13

数据库应用优化的相关文章

Mysql数据库性能优化(一)

参考 http://www.jb51.net/article/82254.htm 今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能.这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库. mysql的性能优化无法一蹴而就,必须一步一步慢慢来,从各个方面

架构设计:系统存储(8)——MySQL数据库性能优化(4)

================================ (接上文<架构设计:系统存储(7)--MySQL数据库性能优化(3)>) 4-3.InnoDB中的锁 虽然锁机制是InnoDB引擎中为了保证事务性而自然存在的,在索引.表结构.配置参数一定的前提下,InnoDB引擎加锁过程是一样的,所以理论上来说也就不存在"锁机制能够提升性能"这样的说法.但如果技术人员不理解InnoDB中的锁机制或者混乱.错误的索引定义和同样混乱的SQL写操作语句共同作用,那么导致死锁出现的

数据库性能优化、统计信息与对象统计信息概述收集、扩展统计信息、dbms_stats.get_prefs

数据库性能优化 相关书籍: 1.基于成本的Oracle优化法则 2.Oracle性能诊断艺术 3.基于Oracle的SQL优化 ----------------------------------------------------------------------------------------- 两种优化器: CBO  cost-base optimizer 基于cost 更大适应性/灵活性/10g开始 RBO  rule-base optimizer 基于规则 制定了15条/10g以

SQL Server数据库性能优化之SQL语句篇(转载)

SQL Server数据库性能优化之SQL语句篇 原文地址:http://www.blogjava.net/allen-zhe/archive/2010/07/23/326927.html 期项目需要,做了一段时间的SQL Server性能优化,遇到了一些问题,也积累了一些经验,现总结一下,与君共享.SQL Server性能优化涉及到许多方面,如良好的系统和数据库设计,优质的SQL编写,合适的数据表索引设计,甚至各种硬件因素:网络性能.服务器的性能.操作系统的性能,甚至网卡.交换机等.这篇文章主

数据库数据优化故事多

基础调用评教系统接口,在运行程序时 我们看到IIS的进程居高不下. 于是想了几个方法进行数据库的而优化尝试. 第一 加索引. 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息.索引对于数据库来说 就像目录和整本书的关系一样.有了数据库索引,我们就可以先查找目录,然后快速的找到我们想要查询的字段.如果想按特定学生的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息. 优点: 创建索引可以大大提高系统的性能.第一,通过创建唯一性索引,可以保

mysql基础和数据库的优化

Mysql基础... 4 Mysql介绍... 4 登录mysql mysql –u root –p[掌握]... 4 SQL语言... 4 DCL. 4 grant. 4 revoke. 4 DDL. 4 建库... 4 删库... 4 建表... 4 看表结构... 5 删表... 5 修改表... 5 DML[重点]... 5 增加... 5 删除... 5 修改... 5 查看... 5 排序... 5 总数... 5 求和... 5 平均... 6 最大... 6 最小... 6 表连

数据库SQL优化大总结之 百万级数据库优化方

http://tw.streetvoice.com/anssm001/songs/album/93124674/ http://tw.streetvoice.com/anssm001/songs/album/93124684/ http://tw.streetvoice.com/anssm001/songs/album/93124698/ http://tw.streetvoice.com/anssm001/songs/album/93124716/ http://tw.streetvoice.

数据库后台优化——触发器

为了保证数据库的完整性和一致性,很多的时候需要执行多条sql语句才能达到想要的目的. 在一对多的数据库关系中,比如卡号类别与卡号之间的关系.如果要取消某个类别的时候,就要连同齐下的所有卡号都删除.在现实中,注册的时候一般都会进行充值,当我想card表里面写东西的时候,就要向recharge表里面写一条充值记录.完成这两个操作才算完成这个功能的实现. 对于以上的需求,每个功能的实现 都伴随着多条sql语句的执行. 为了解决上面的问题,一共有两种解决方法.一是存储过程,二是触发器.上篇博客中已经讲解

架构设计:系统存储(9)——MySQL数据库性能优化(5)

=================================== (接上文<架构设计:系统存储(9)--MySQL数据库性能优化(5)>) 4-3-3-3.避免死锁的建议 上一篇文章我们主要介绍了MySQL数据库中锁的基本原理.工作过程和产生死锁的原因.通过上一篇文章的介绍,可以确定我们需要业务系统中尽可能避免死锁的出现.这里为各位读者介绍一些在InnoDB引擎使用过程中减少死锁的建议. 正确使用读操作语句 经过之前文章介绍,我们知道一般的快照读是不会给数据表任何锁的.那么这些快照读操作

SQL Server 数据库性能优化(转载)

原文地址:http://www.cnblogs.com/sydeveloper/archive/2013/04/03/2992881.html 一.数据库设计优化 1.不要使用游标. 使用游标不仅占用内存,而且还用不可思议的方式锁定表,它们可以使DBA所能做的一切性能优化等于没做.游标里每执行一次fetch就等于执行一次select. 2.创建适当的索引 每当为一个表添加一个索引,select会更快,可insert和delete却大大变慢,因为创建了维护索引需要许多额外的工作. (1)采用函数处