数据库结构设计,技巧等

1、查询语句尽量不要使用select *等操作,原因:避免查询出不必要的数据,避免表结构变化后sql语句出错

2、对where, group by,order by等后面的字段加索引来提高速度,但索引不能太多。

3、了解数据库设计的几个范式,但是设计时有时候需要适当的违法范式来提高数据操作性能,如:通过冗余一些数据,从空间上的冗余换取时间上的高效

4、考虑数据的存储用途,对增长很快的表做分表存储,有些数据需要永久存储,但有些数据是要定时清理的,在数据表设计时就要区分好

时间: 2024-10-10 18:39:14

数据库结构设计,技巧等的相关文章

浅谈数据库设计技巧(转)

说到数据库,我认为不能不先谈数据结构.1996年,在我初入大学学习计算机编程时,当时的老师就告诉我们说:计算机程序=数据结构+算法.尽管现在的程序开发已由面向过程为主逐步过渡到面向对象为主,但我还是深深赞同8年前老师的告诉我们的公式:计算机程序=数据结构+算法.面向对象的程序开发,要做的第一件事就是,先分析整个程序中需处理的数据,从中提取出抽象模板,以这个抽象模板设计类,再在其中逐步添加处理其数据的函数(即算法),最后,再给类中的数据成员和函数划分访问权限,从而实现封装. 数据库的最初雏形据说源

[精华] 数据库设计技巧

数据库设计技巧(一)  在动态网站的设计中,数据库设计的重要性不言而喻.如果设计不当,查询起来就非常吃力,程序的性能也会受到影响.无论你使用的是mySQL或者Oracle数据库,通过进行正规化的表格设计,可以令你的PHP代码更具可读性,更容易扩展,从而也会提升应用的性能.简单说来,正规化就是在表格设计时,消除冗余性和不协调的从属关系.在本文中,我将通过五个渐进的过程来告诉你在设计中应该了解的正规化技巧.从而建立一个可行而且效率高的数据库.本文也会详细分析一下可以利用的关系类型. 这里假定我们要建

实用的数据库优化技巧(一)

1.不要在循环.遍历中使用数据库操作语句: 2.使用连接(JOIN)来代替子查询: a.删除没有任何订单客户:DELETE FROM customerinfo WHERE customerid NOT in(SELECT customerid FROM orderinfo) b.提取所有没有订单客户:SELECT FROM customerinfo WHERE customerid NOT in(SELECT customerid FROM orderinfo) c.提高b的速度优化:SELEC

数据库设计技巧

1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体.在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单据对应多个实体,或多张原始单据对应一个实体.这里的实体可以理解为基本表.明确这种对应关系后,对我们设计录入界面大有好处. [例1]:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员工基本情况表.社会关系表.工作简历表.这就是"一张原始单据对应多个实体"的典型例子. 2. 主键与外键

带你了解MySQL数据库小技巧

兴趣是最好的老师,不论学习什么知识,兴趣都可以极大地提高学习效率.当然学习MySQL 5.6也不例外.本文列举37 个 MySQL 数据库小技巧,快来学习吧! 37 个 MySQL 数据库小技巧! 1.如何快速掌握MySQL? 培养兴趣 兴趣是最好的老师,不论学习什么知识,兴趣都可以极大地提高学习效率.当然学习MySQL 5.6也不例外. 夯实基础 计算机领域的技术非常强调基础,刚开始学习可能还认识不到这一点,随着技术应用的深 入,只有有着扎实的基础功底,才能在技术的道路上走得更快.更远.对于M

6.MySQL数据库结构设计

数据结构设计的目的: 示例表:记录每个学生所选课程信息,学号+课程名为主键 1.减少数据冗余,相同的不必要的数据在多个地方存在 如表中,多次出现学生姓名跟生日信息,课程学分都是冗余的 2.尽量避免数据维护中出现更新,插入和删除异常 插入异常:如果表中的某个实体随着另一个实体而存在,如表中需要插入一门课程,但是没有学生选择这门课,那么单独插入课程名及课程其信息是会报错的. 更新异常:如果更改表中的某个实体的单独属性时,需要对多行进行更新.如表中,需要更新数学这门课程的学分,会同时更新两行,随着选择

数据库面试技巧,通过JDBC展示自己专业性,摘自java web轻量级开发面试教程

这篇文章是我之前写的博文 数据库方面的面试技巧,如何从建表方面展示自己能力 和 面试技巧,如何通过索引说数据库优化能力,内容来自Java web轻量级开发面试教程是一个系列的,通过面试官的视角和大家分享在数据库方面的面试经验,这些内容都来摘自  java web轻量级开发面试教程. 之前的两篇文章点击量都还行,也感谢管理员放入首页,这鼓舞到了我,也让我更有信心和大家分享我的经验. 我们知道,最终我们是要通过jdbc来连接并访问数据库的,也就是说,最近面试官一定会通过JDBC方面的技能来考核候选人

AIX UNIX 系统管理、维护与高可用集群建设——数据库结构设计

在对数据库类应用进行优化的过程中我们了解到一个原则,即思想上要从结构设计抓起,按照下面的顺序: 1.数据库逻辑结构设计和物理设计. 2.数据库对象部署和SQL代码编写. 3.数据库实例性能调整和优化. 4.操作系统性能调整和优化. 5.存储系统性能调整和优化. 6.网络系统性能调整和优化.

通用权限管理设计 ( 数据库结构设计)

一,前言  权限管理系统的应用者应该有三种不同性质上的使用, A,使用权限 B,分配权限 C,授权权限 本文只从<使用权限>和<分配权限>这两种应用层面分析,暂时不考虑<授权权限>这种. 二,初步分析 用户和角色 说到权限管理,首先应该想到,当然要设计一个用户表,一个权限表.这样就决定了一个人有什么样的权限. 做着做着就会发现这样设计太过繁琐,如果公司里面所有员工都有这样的权限呢,每一个人都要配置?那是一件很痛苦的事情.因此再添加一个角色表,把某些人归为一类,然后再把权