以图明志

数据库技术

为什么要从关系型数据库转向NoSQL

思维转变
NoSQL系统一般都会宣传一个特性,那就是性能好。为什么呢?关系型数据库发展了这么多年,各种优化工作已经做得很深了,NoSQL系统一般都是吸收关系型数据库的技术,然后,到底是什么因素束缚了关系型数据库的性能呢?我们从系统设计的角度看这个问题。

数据库技术

一个十几年经验DBA的宝贵经验财富

走向DBA
执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个10万条记录的表中查1条记录,那查询优化器会选择“索引查找”方式,如果该表进行了归档,当前只剩下5000条记录了,那查询优化器就会改变方案,采用“全表扫描”方式。

数据库技术

MySQL的双表多表联查

从两个数据表中取回想要的结果集
最近在做EC-Mall的二次开发,遇到这么一个需求,将挂件单独显示成一个页面。由于EC-Mall的挂件是用数据模块+模块类库的方式进行的,就是使用类似smarty的形式。而单独一个页面的话,数据读取需要自己写SQL语句。现在的问题是,需要将商品中的汽车类中的推荐商品数据显示出来,sql如下……

数据库技术

MySQL Query Cache查询缓存介绍

降低你的数据库访问压力
顾名思义,MySQL Query Cache 就是用来缓存和 Query 相关的数据的。具体来说,Query Cache 缓存了我们客户端提交给 MySQL 的 SELECT 语句以及该语句的结果集。大概来讲,就是将 SELECT 语句和语句的结果做了一个 HASH 映射关系然后保存在一定的内存区域中。

数据库技术

一些影响数据库访问速度的原因分析

数据库性能优化
数据库性能优化主要是提高数据访问的速度,即提高数据库响应速度的性能指标。性能优化主要分为主观因素和客观因素两部分的优化。这里主要针对影响性能的客观因素进行优化。没有索引或者没有用到索引。数据库索引就像书籍中目录一样,使用户在访问数据库数据时,不必遍历所有数据就可以找到需要的数据。

数据库技术

站内信数据库设计思路

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

数据库技术

MySQL获取某个时间范围内的数据

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

数据库技术

设计大型数据库需要注意哪些地方

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

数据库技术

如何设计数据库的主键

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

数据库技术

提高MySQL效率与性能的技巧

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

数据库技术

MySQL的Order By Rand()有很严重的效率问题

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

数据库技术

SQL笔试题:公司员工与部门查询

一道面试题,可以补充你SQL知识的不足
列出EMPLOYEES表中各部门的部门号,最高工资,最低工资:select max(SALARY) as 最高工资,min(SALARY) as 最低工资,DEPARTMENT_ID from EMPLOYEES group by DEPARTMENT_ID;

数据库技术

使用MySQL命令行了解SQL的执行结果

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

数据库技术

数据库视图view初探

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

数据库技术

SQL练习:获取最后十条记录

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

数据库技术

MySQL中char与varchar的区别

选择char还是varchar?
char和varchar类型相似,但是它们的存储和检索方式不同。在MySQL5.0.3,它们在最大长度和是否保留尾部空格也不相同。char和varchar定义了字符串的最大长度。例如,char(30)可以放30个字符。char列的长度在你建表的时候,就是你定义的固定长度。值的范围是0~255。char值存储的时候,右部以空格来填充到指定的长度。
3 / 6 首页 < Prev 1 2 3 4 5 Next > 尾页 页码: