数据库设计
mituan1234567
今天比昨天更好明天比今天更好为此不屈不挠地工作勤勤恳恳地经营孜孜不倦地修炼我们人生的目的和价值就是这样确确实实地存在着
展开
-
高可用性、负载均衡的mysql集群解决方案
https://my.oschina.net/liuyuantao/blog/1860806一、为什么需要mysql集群?一个庞大的分布式系统的性能瓶颈中,最脆弱的就是连接。连接有两个,一个是客户端与后端的连接,另一个是后端与数据库的连接。简单如图下两个蓝色框框在客户端与后端中可以利用类似nginx的负载均衡解决(本专题是mysql优化,后面出高并发专题再详细讲解连接1的负载均衡)...转载 2019-12-11 10:54:03 · 371 阅读 · 0 评论 -
如果网站有大量的图片,是存在数据库好?还是存文件?
http://www.dewen.org/q/7804数据库的好处是便于批量查询和返回结果,适用于查询方面的需求。文件的好处是便于直接访问,适用于直接显示方面的需求。如果你是想作为像百度图片和google图片一样的一个图片搜索系统,那么当然是数据库优先啦,不过需要注意的是,并不是把图片存入数据库,而是在数据库中存储从图片中提取的特征,便于查询,图片作为最终数据需要存储在另外一个数据库中转载 2013-09-13 17:01:19 · 16383 阅读 · 0 评论 -
ADO.NET 2.0中的异步命令执行
http://www.cnblogs.com/haowenbiao/archive/2008/05/11/1192768.html在ADO.NET 2.0版本中,我们不仅希望使现有的方案更为简单,而且还要实现在以往不可能或者无法达到完善的新方案。异步命令执行正是这种想法的一个优秀示例。在ADO.NET 2.0之前的版本中,执行一个命令并在继续执行之前不等待该命令完成是不可能的。增加转载 2014-03-05 15:41:51 · 857 阅读 · 0 评论 -
sql server 随机抽取N条数据
http://blog.163.com/09zzy@126/blog/static/711976652011111225415307/Select Top 5 * From 表名 Order By NEWID() , newid 产生的新的值是不固定的 。 在Select表里的数据的NEWID() 函数时候 随即选出N条记录 。回答人的补充 2011-04-21 22转载 2014-03-04 15:29:33 · 1136 阅读 · 0 评论 -
随机选择数据库记录的方法
http://blog.csdn.net/l_serein/article/details/4446498(使用Randomize函数,通过SQL语句实现) 对存储在数据库中的数据来说,随机数特性能给出上面的效果,但它们可能太慢了些。你不能要求ASP“找个随机数”然后打印出来。实际上常见的解决方案是建立如下所示的循环: Randomize RNumber = Int(Rnd*转载 2014-03-04 15:21:38 · 642 阅读 · 0 评论 -
随机读取N条记录(MySQL、SQL Server、Access、Oracle、postgreSQL)
http://blog.csdn.net/melon_xyj/article/details/5804711利用一条SQL语句从数据库Table表中随机获取N条记录,各数据库的SQL语句略有不同,如下:1、MySql Select * From TABLE Order By Rand() Limit N 以上代码效率不高,自己对1000条数转载 2014-03-04 15:30:51 · 585 阅读 · 0 评论 -
数据库Sharding的基本思想和切分策略
http://blog.csdn.net/bluishglc/article/details/6161475本文着重介绍sharding的基本思想和理论上的切分策略,关于更加细致的实施策略和参考事例请参考我的另一篇博文:数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示 一、基本思想 Sharding的基本思想就要把一个数据库切分转载 2015-03-08 16:21:00 · 356 阅读 · 0 评论 -
分片(Sharding)的全局ID生成
http://blog.csdn.net/hengyunabc/article/details/19025973前言数据在分片时,典型的是分库分表,就有一个全局ID生成的问题。单纯的生成全局ID并不是什么难题,但是生成的ID通常要满足分片的一些要求:不能有单点故障。以时间为序,或者ID里包含时间。这样一是可以少一个索引,二是冷热数据容易分离。可以控制Shardi转载 2015-03-08 16:09:32 · 598 阅读 · 0 评论 -
数据库事务、隔离级别和锁
https://www.jianshu.com/p/cb97f76a92fd这是个令大多数后端同学头疼的问题。部分是因为不同的文章、文档充斥着不相容的概念。高层抽象和底层实现混到一起令人傻傻的分不清楚。此外还有一部分是SQL标准和实现压根就不一致。本文期望在众多文献中找到一条容易理解知识线,帮助大家在实际工作中更加容易明白到底怎么使用数据库的事务、隔离级别和锁。ACID的真实含义一般都...转载 2019-08-02 16:03:02 · 347 阅读 · 0 评论 -
使用 TABLESAMPLE 限制结果集
使用 TABLESAMPLE 限制结果集 【转载】http://www.cnblogs.com/chenxizhang/archive/2009/05/19/1460040.html该文转载自:http://msdn.microsoft.com/zh-cn/library/ms189108.aspx TABLESAMPLE是SQL 2005开始引入的一个新语法,它可以针对表转载 2013-09-14 11:04:00 · 743 阅读 · 0 评论 -
主流数据库字符串连接函数
在MYSQL中字符串连接使用的是concat内置函数。可以写为:select * from myDB where name =concat('a','bc')在SQL Server中字符串连接用+号。可以写为:select * from myDB where name ='a'+'bc' 在Oracle中字符串连接用的是||号。原创 2013-08-26 21:55:37 · 751 阅读 · 0 评论 -
存储过程和sql语句的优缺点
http://3871584.blog.163.com/blog/static/33526564201232501919316/答:存储过程的优缺点:优点:1.由于应用程序随着时间推移会不断更改,增删功能,T-SQL过程代码会变得更复杂,StoredProcedure为封装此代码提供了一个替换位置。2.执行计划(存储过程在首次运行时将被编译,这将产生一个执行计划-- 实际上是转载 2013-03-19 10:31:23 · 1282 阅读 · 0 评论 -
数据库设计规范化的五个要求
通常情况下,可以从两个方面来判断数据库是否设计的比较规范。一是看看是否拥有大量的窄表,二是宽表的数量是否足够的少。若符合这两个条件,则可以说明这个数据库的规范化水平还是比较高的。当然这是两个泛泛而谈的指标。为了达到数据库设计规范化的要求,一般来说,需要符合以下五个要求。 要求一:表中应该避免可为空的列。 虽然表中允许空列,但是,空字段是一种比较特殊的数据类型。数据库在处理的时候,需要进转载 2012-10-31 12:50:39 · 571 阅读 · 0 评论 -
SARG(Searchable Arguments)
如下: 列名 操作符 或 操作符列名列名可以出现在操作符的一边,而常数或变量出现在操作符的另一边。如: Name=’张三’ 价格>5000 5000 Name=’张三’ and 价格>5000 如果一个表达式不能满足SARG的形式,那它就无法限制搜索的范围了,也就是SQL SERVER必须对每一行转载 2012-11-08 10:58:39 · 574 阅读 · 0 评论 -
什么是DQL、DML、DDL、DCL
SQL(Structure Query Language)语言是数据库的核心语言。SQL的发展是从1974年开始的,其发展过程如下:1974年-----由Boyce和Chamberlin提出,当时称SEQUEL。1976年-----IBM公司的Sanjase研究所在研制RDBMS SYSTEM R时改为SQL。1979年-----ORACLE公司发表第一个基于SQL的商业化转载 2012-12-03 17:04:52 · 353 阅读 · 0 评论 -
主键设计用什么字段类型比较好?
主键的必要性: 有些朋友可能不提倡数据库表必须要主键,但在我的思考中,觉得每个表都应该具有主键,不管是单主键还是双主键,主键的存在就代表着表结构的完整性,表的记录必须得有唯一区分的字段,主键主要是用于其他表的外键关联,本记录的修改与删除,当我们没有主键时,这些操作会变的非常麻烦。 主键的无意义性: 我强调主键不应该具有实际的意义,这可能对于一些朋友来说不太认同,比如订单表吧,会有“订转载 2013-02-16 10:53:10 · 630 阅读 · 0 评论 -
sqlserver 中的GUID 全局唯一标识
--简单实用全局唯一标识 DECLARE @myid uniqueidentifierSET @myid = NEWID()PRINT 'Value of @myid is: '+ CONVERT(varchar(255), @myid) --结果集Value of @myid is: 6F9619FF-8B86-D011-B42转载 2013-02-16 11:09:34 · 444 阅读 · 0 评论 -
主键的生成方式
主键的生成方式主要有三种:一. 数据库自动生成二. GUID三. 开发创建严格讲这三种产生方式有一定的交叉点,其定位方式将在下面进行讲解。第一种方式,主要将其定位在自增长的标识种子:可以设置起始数值,及增长步长。其优点在于使用时完全将并发任务交于数据库引擎管理,你不用担心存在多用户使用的时候会产生两个相同的ID的情况。其缺点也在于此,多数的数据库不提供直接获取标转载 2013-02-16 12:33:49 · 525 阅读 · 0 评论 -
主键设计的注意点
http://www.ituring.com.cn/article/6832在设计主键的时候往往需要考虑以下几点:无意义性:此处无意义是从用户的角度来定义的。这种无意义在一定程度上也会减少数据库的信息冗余。常常有人称呼主键为内部标识,为什么会这样称呼,原因之一在于“内部”,所谓内部从某种程度上来说就是指表记录,从大的范围来说就是数据库,如果你在设计的时候选择了对用户来说有意义的转载 2013-02-16 12:33:07 · 413 阅读 · 0 评论 -
数据库设计三大范式
http://www.cnblogs.com/linjiqin/archive/2012/04/01/2428695.html为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。 在实际开发中最为常见转载 2013-02-16 21:46:10 · 269 阅读 · 0 评论 -
小温谈数据库优化--数据设计篇
三大范式: 第1规范:没有重复的组或多值的列,这是数据库设计的最低要求。 第2规范: 每个非关键字段必须依赖于主关键字,不能依赖于一个组合式主关键字的某些组成部分。消除部分依赖,大部分情况下,数据库设计都应该达到第二范式。 第3规范: 一个非关键字段不能依赖于另一个非关键字段。消除传递依赖,达到第三范式应该是系统中大部分表的要求,除非一些特殊作用的表。 更高的范式要求这里就转载 2012-10-31 12:52:11 · 385 阅读 · 0 评论