简明现代魔法 -> 数据库技术

如何设计一个优秀的数据库

精选了其中的 60 个最佳技巧

一个成功的管理系统,是由:[50% 的业务 + 50% 的软件] 所组成,而 50% 的成功软件又有 [25% 的数据库 + 25% 的程序] 所组成,数据库设计的好坏是一个关键。如果把企业的数据比做生命所必需的血液,那么数据库的设计就是应用中最重要的一部分。

发布于 2010-11-11 分类:database

关于MySQL的十个需要注意的细节

MySQL的技术细节跟你想象的不完全一样

在SQL中,NULL什么也不等于,而且NULL也不等于NULL。这个查询不会返回任何结果的,实际上,当构建那个plan的时候,优化器会把这样的语句优化掉。当搜索NULL值的时候,应该使用这样的查询:……

发布于 2010-11-03 分类:database

大型互联网应用的数据库设计与部署方案

规模日益增大的互联网应用必然会面临的问题

随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天百万级甚至上亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。

发布于 2010-10-24 分类:database

一个增加员工工资的数据库存储过程

练一下存储过程的写法

一个面试问题,写一个SQL语句或者存储过程,给员工加工资,当员工里面有一半的人没有达到6000元的时候,所有员工加100,并打印加了多少工资。

发布于 2010-10-18 分类:database

MySQL的char和varchar类型的区别

选择char还是varchar?

char和varchar类型相似,但是它们的存储和检索方式不同。在MySQL5.0.3,它们在最大长度和是否保留尾部空格也不相同。char和varchar定义了字符串的最大长度。例如,char(30)可以放30个字符。char列的长度在你建表的时候,就是你定义的固定长度。值的范围是0~255。char值存储的时候,右部以空格来填充到指定的长度。

发布于 2010-09-28 分类:database

几种获取数据库最后10条记录的方法

当作SQL的练习吧

获取数据库最后若干条记录是很常见的用法,下面分别用几种方法去实现,当作SQL的练习吧。一种方法是数据库记录倒序排序,然后用limit 10子句获取10条。也可以取得最大记录的id,然后在WHERE子句减去10。下面也是用一样的方法,不过使用的是 count() 函数。

发布于 2010-09-21 分类:database

探明数据库视图

数据库视图可以让数据库有更大的操作空间

视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

发布于 2010-09-17 分类:database

MySQL命令行下了解SQL语句的执行情况

教你如何学习SQL

在命令行下学习SQL是个非常不错的选择,它可以直观地显示SQL的执行结果,下面使用Navicat的命令行工具看看常用的SQL语句的执行情况。

发布于 2010-09-15 分类:database

一道关于员工与部门查询的SQL笔试题

一道面试题,可以补充你SQL知识的不足

列出EMPLOYEES表中各部门的部门号,最高工资,最低工资:select max(SALARY) as 最高工资,min(SALARY) as 最低工资,DEPARTMENT_ID from EMPLOYEES group by DEPARTMENT_ID;

发布于 2010-09-14 分类:database

MySQL的Order By Rand()效率问题

获取数据库随机记录的高效方法

MySQL很多时候需要获取随机数据,举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() LIMIT 1,但是,后来我查了一下MYSQL的官方手册,里面针对RAND()的提示大概意思就是,在ORDER BY从句里面不能使用RAND()函数,因为这样会导致数据列被多次扫描。

发布于 2010-09-11 分类:database

最大限度提高MySQL的性能

数据库性能是个不得不面对的问题

数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。

发布于 2010-09-09 分类:database

谈谈数据库主键的设计

主键的设计是非常重要的

有些朋友可能不提倡数据库表必须要主键,但在我的思考中,觉得每个表都应该具有主键,不管是单主键还是双主键,主键的存在就代表着表结构的完整性,表的记录必须得有唯一区分的字段,主键主要是用于其他表的外键关联,本记录的修改与删除,当我们没有主键时,这些操作会变的非常麻烦。

发布于 2010-09-06 分类:database

大型数据库设计需要注意的问题

如何设计出高效的海量数据库

一个面试问题,关于数据库的设计。面试开始那位仁兄直接的说了他所面临的问题,公司数据库数据到达百万级别,以后可能会到达千万,需要一个好的设计人员对数据库进行优化设计,这里指的是不光设计符合功能需求,更加要符合性能需求,就是说数据库设计上面需要兼顾到效率。

发布于 2010-08-31 分类:database

MySQL获得一个时间范围内的记录

TO_DAYS(date)函数与now()函数

有这样一个需求,我们需要获得某个时间段内所有数据记录,比如最近一个月内的新闻,然后再在这个数据集合中进行排序,看哪个新闻的点击率最高。现在问题是,如何获得那个时间段。MySQL已经有些函数可以帮助我们,先看看这些函数吧。

发布于 2010-08-26 分类:database

简单的站内短信数据库设计

站内短信的实现思路

站内短信很常见,比如系统需要发消息给用户,用户登录之后可以看到这些消息。msg表包含了发件箱所需要的所有信息,程序的时候写发件箱的时候可以只考虑操作一张数据库表。user_has_msg中,departmentid主要考虑的是存在大量的按照部门群发的可能。

发布于 2010-08-23 分类:database
 

copyright © 2009 简明现代魔法    学习、分享、进步

power by Gonn 感谢所有关心和支持本站的朋友们