易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL Databases Don't Scale (简译)

我经常问的一个问题是:你是如何来扩展SQL Database的?有很多的方法可以做到,比如使用缓存,共享或者用其他的技术将压力从数据库释放,但实际上我们没有。SQL Database从根本上来说是不具有扩展性的,我们也没有魔法使它忽然具有扩展性。
什么是扩展性?
必须具有几下几点:
横向扩展:更多的server可以带来更高的性能。
对应用程序的透明性:扩展的实现对于业务逻辑来说是透明的,逻辑上只有一个server服务于业务。
单点失败不会导致故障:单个server或者节点的宕机不会导致系统的失败。
接下来,让我们看一些技术如何“扩展”SQL Database以及他们为什么没有达到以上几点。
纵向扩展
一种方法去扩展SQL Database是买更大的server或者存储。这带来的问题是:
运输变的复杂
原来的机器落后,升级变的浪费资源
你不知道到底类似容量这样的问题会变的有多大
这个不符合扩展性的第一条。
分区,共享
根据逻辑对数据进行分区。这种方法也是纵向扩展的一种方法,它紧密依赖于应用并且你需要仔细的去计划你的schema。
这种方法对于程序来说是不透明的,必须和业务结合在一起,不符合扩展性的第二条。更严重的问题是,数据库是关系数据库,存储的数据也是相关的,这样的相关数据分布在多个server上,你需要为这样重复的关系服务,而且当他们返回时必须在客户端重新构建这样的关系。
只读的Slave
MySql的杀手级应用就是配置方便的master-slave复制,你可以用一个read-only-slave来处理你的读应用而把所有的insert update delete都由master来处理。
这种方式是最好的扩展方式,这也是很多大型的MySql在使用的方法。对于读扩展来说这样的方法是好的,对于写扩展来说这样的效率还是不行的,而且当你维护master server的时候,也会造成整个系统的宕机。
原文:http://adam.blog.heroku.com/past/2009/7/6/sql_databases_dont_scale/


相关文档:

sql优化 对like ‘%xx%’ 的替换

在SQL中可以使用Like进行模糊查询,例如 f_stuname like 'a%' 查询f_stuname列以a开头的记录。
当我们在应用中使用
f_stuname
like '%a%' 时,如果

f_stuname有索引的话,这个索引也是不执行的
在SQL优化中这个写法就是一个不好的SQL了。
那么如何来替换这个呢,这一个就用到了Oracle的instr函数了
我们可以这样 ......

SQL注入

    SQL注入攻击的危害性很大。在讲解其防止办法之前,数据库管理员有必要先了解一下其攻击的原理。这有利于管理员采取有针对性的防治措施。
  一、 SQL注入攻击的简单示例。
  statement := "SELECT * from Users WHERE Value= " + a_variable + "
  上面这条语句是很普通的一条SQL语句,他主要实 ......

sql server 索引

sql server 创建索引
http://54laobaixing.blog.163.com/blog/static/57843681200952411133121/
SQL SERVER索引,优化
http://tieba.baidu.com/f?kz=170889655
Sybase SQL Server索引的使用和优化
http://www.yesky.com/79/211079.shtml ......

SQL聚合函


SQL聚合函
标签:sql聚合函数 杂谈 
 
聚合函数:
1.AVG 返回组中的平均值,空值将被忽略。
例如:use  northwind   // 操作northwind数据库
   Go
   Select  avg (unitprice)   //从表中选择求unitprice的平均值
    & ......

SQL优化

SQL优化34条
我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习、摘录、并汇总部分资料与大家分享!
(1)      选择最有效率的表名顺序(只在基于规则的优化器中有效):
ORACLE 的解析器按照从右到左的顺序处理from子句中的表名,from子句中写在最后的表(基础表 driving tabl ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号