数据库优化方面的经验

用PreparedStatement 一般来说比Statement 性能高:一个sql 发给服务器去执行,涉及步骤:
语法检查、语义分析, 编译,缓存
“inert into user values(1,1,1)”-??二进制
“inert into user values(2,2,2)”-??二进制
“inert into user values(?,?,?)”-??二进制
有外键约束会影响插入和删除性能,如果程序能够保证数据的完整性,那在设计数据库时就
去掉外键。(比喻:就好比免检产品,就是为了提高效率,充分相信产品的制造商)
(对于 hibernate 来说,就应该有一个变化:empleyee->Deptment 对象,现在设计时就成了
employee??deptid)
看 mysql 帮助文档子查询章节的最后部分,例如,根据扫描的原理,下面的子查询语句要比
第二条关联查询的效率高:
1. select e.name,e.salary where e.managerid=(select id from employee where name=‘zxx‘);
2. select e.name,e.salary,m.name,m.salary from employees e,employees m where
e.managerid = m.id and m.name=‘zxx‘;
表中允许适当冗余,譬如,主题帖的回复数量和最后回复时间等
将姓名和密码单独从用户表中独立出来。这可以是非常好的一对一的案例哟!
sql 语句全部大写,特别是列名和表名都大写。特别是sql 命令的缓存功能,更加需要统一
大小写,sql 语句??发给oracle 服务器??语法检查和编译成为内部指令??缓存和执行指令。
根据缓存的特点,不要拼凑条件,而是用?和PreparedStatment
还有索引对查询性能的改进也是值得关注的。
备注:下面是关于性能的讨论举例
4 航班 3 个城市
m*n
select * from flight,city where flight.startcityid=city.cityid and city.name=‘beijing‘;
m + n
select * from flight where startcityid = (select cityid from city where cityname=‘beijing‘);
96
select flight.id,‘beijing‘,flight.flightTime from flight where startcityid = (select cityid from city
where cityname=‘beijing‘)

数据库优化方面的经验,布布扣,bubuko.com

时间: 2024-10-13 06:32:15

数据库优化方面的经验的相关文章

说出一些数据库优化方面的经验?

用 PreparedStatement 一般来说比 Statement 性能高: 一个 sql 发给服务器去执行, 涉及步骤:语法检查. 语义分析, 编译, 缓存“inert into user values(1,1,1)”-?二进制“inert into user values(2,2,2)”-?二进制“inert into user values(?,?,?)”-?二进制 有外键约束会影响插入和删除性能, 如果程序能够保证数据的完整性, 那在设计数据库时就去掉外键.( 比喻: 就好比免检产品

数据库优化

本文介绍一点,关于数据库优化方面的经验总结,希望对需要的人有所帮助! 优化请掌握以下几点(高手请补充): 1.表上的字段不要太多,能独立出去的尽量独立出去,虽然表上的字段多,写代码会比较方便, 但是运行效率就差了 2.将字符串的比较变成数字型比较每个系统都会有用户管理,其中必然有 昵称,密码,邮件等的字符串类型数据比较的问题.在数 据库操作中,字符串比较的效率是相当低下的.因此遇到字符串的比较,必须将其转换为数字型 比较.  具体做法是:在数据库表中增加相应的数字字段,比如 cNickname

数据库优化方法整理

数据库优化的目标无非是避免磁盘I/O瓶颈.减少CPU利用率和减少资源竞争. 在基于表驱动的信息管理系统(MIS)中,基本表的设计规范是第三范式(3NF). 第三范式的基本特征是非主键属性只依赖于主键属性. 基于第三范式的数据库表设计具有很多优点: 一是消除了冗余数据,节省了磁盘存储空间: 二是有良好的数据完整性限制,即基于主外键的参照完整限制和基于主键的实体完整性限制,这使得数据容易维护, 也容易移植和更新: 三是数据的可逆性好,在做连接(Join)查询或者合并表时不遗漏.也不重复: 四是因消除

MySql学习(五) —— 数据库优化理论篇(一)

一.数据库管理系统 数据库管理系统(Database Management System, DBMS) 衡量是否是数据库的标准: ACID:是指在数据库管理系统(DBMS)中事务所具有的四个特性: 1) 原子性(Atomicity) 2) 一致性(Consistency) 3)隔离性(Isolation) 4)持久性(Durability) 1.关系型数据库:是建立在关系数据库模型基础上的数据库,借助于关系代数等概念和方法来处理数据库中的数据,同时也是一个被组织成一组拥有正式描述性的表格,该形式

Mysql数据库优化技术之配置篇、索引篇 ( 必看 必看 转)

转自:Mysql数据库优化技术之配置篇.索引篇 ( 必看 必看 ) (一)减少数据库访问 对于可以静态化的页面,尽可能静态化 对一个动态页面中可以静态的局部,采用静态化 部分数据可以生成XML,或者文本文件形式保存 使用数据缓存技术,例如: MemCached (二)优化的检测方法 1.用户体验检测 2.Mysql状态检测 在Mysql命令行里面使用show status命令,得到当前mysql状态. 主要关注下列属性: key_read_requests (索引读的请求数)(key_buffe

面试技巧,如何通过索引说数据库优化能力,内容来自Java web轻量级开发面试教程

上星期写了一个篇文章,数据库方面的面试技巧,如何从建表方面展示自己能力,承蒙管理员抬举,放入首页,也承蒙各位厚爱,两天内收获了将近770个点击,也一度进入48小时热榜. 为了感谢管理员和大家的支持,再根据我的面试经验原创一篇关于索引方面如何推销自己的文章.这内容也来自我写的书 java web轻量级开发面试教程. 如果我们需要招个Java方面的高级程序员,一方面看年限(本科3年),具体到数据库方面的技能要求,包括如下三个方面: 第一,是否会基本的增删改查,存储过程等技能,是否会用些group b

数据库优化举例详解

数据库优化举例详解 林涛 发表于:2016-3-16 1:01 分类:XSQL/程序/等 标签:mysql,mysql优化 112次 数据库是所有架构中不可缺少的一环,一旦数据库出现性能问题,那对整个系统都会来带灾难性的后果.并且数据库一旦出现问题,由于数据库天生有状态(分主从)带数据(一般还不小),所以出问题之后的恢复时间一般不太可控,所以,对数据库的优化是需要我们花费很多精力去做的. 硬件层优化 这一层最简单,最近几年相信大家对SSD这个名词并不陌生,其超高的IOPS在刚出现在大家视野中的时

关于SQL性能优化的十条经验

1.查询的模糊匹配 尽量避免在一个复杂查询里面使用 LIKE '%parm1%'—— 红色标识位置的百分号会导致相关列的索引无法使用,最好不要用. 解决办法: 其实只需要对该脚本略做改进,查询速度便会提高近百倍.改进方法如下: a.修改前台程序——把查询条件的供应商名称一栏由原来的文本输入改为下拉列表,用户模糊输入供应商名称时,直接在前台就帮忙定位到具体的供应商,这样在调用后台程序时,这列就可以直接用等于来关联了. b.直接修改后台——根据输入条件,先查出符合条件的供应商,并把相关记录保存在一个

【数据库优化(持续更新)】--第一弹设计优化

前言 数据库是程序的仓库,也是程序中最脆弱的一部分,因为它的脆弱性和重要性,所以需要专门进行管理和优化.在如今的网络化的时代更加需要数据库的灵活和快捷,一个高效的数据库能够使程序运行效率更快,提高程序的运行效率.但往往对数据库的设计达不到我们想要的效果,所以数据库的优化显得尤为重要.该系列文章正是考虑大数据量的当今如何才能让数据库的设计更加灵活,数据检索.操作更加高效展开的讨论,其中涉及到的优化方法是在笔者长期的开发经验以及其它有关数据库优化的文章基础上进行总结的,如果有异议还请指出. 数据