当客户数据量极大时如何设计表
来源:互联网 发布:网络的概念是什么 编辑:程序博客网 时间:2024/06/09 16:43
一个简单的SQL语句:select count(1) from tableName with(nolock) where columnA=A and columnB=B and columnC=C,被一个关键页面调用,虽然加了Memcache缓存,但由于数据结构设计问题,造成了数据库服务器CPU负载高达100%,关键页面响应超时,造成极其不好的影响。
究其原因,缺少索引,数据结构设计之初,没有为该表建立索引,而后又忽略了该表仅测试数据就达到五六百万级别,以每天25万左右的速度增长。测试时,由于没有访问量,性能问题没被发现;而上线前的压力测试,由于测试帐号只有有限的几个,而系统根据帐号增加了Memcache缓存,因此该问题又被忽略了;直到系统上线第二天,真实的用户访问量上来了,该问题才暴露无遗,客服电话很快被打爆。
为了彻底解决该问题,花费了几个工作日,血淋淋的教训。如果开发之前设计好数据结构建好索引、如果开发测试的时候关注下数据量、如果把写好的SQL语句放到查询分析器分析下性能...做设计写程序,意识不能少,开发前的设计要做到位,开发流程要把握好,否则发生杯具只能自己埋单了。
上文摘自http://www.cnblogs.com/freshman0216/archive/2010/11/02/1866788.html
这里结合自己最近的工作说明一下自己的体会。
正如上文所言。在数据库设计之初建表之时的前提对业务流进行了很好的理解规划,然后进行数据库设计。
在需求的基础上利用面向对象的概念和面向接口的概念提炼出相应的属性对应的表及其字段。
其实对于这个阶段把数据库设计好后应该在结合第一阶段的业务利用TDD思考
这个表的这个字段真的这么有必要吗?这个表是不是应该预留出一到2个字段以备扩展用
这个表在整个业务中使用是否频繁,频繁的话是否应该进行加锁控制,或者说在读取上效率如何保证
主键是否真的有必要,索引是否建立的及时和到位。因为开发人员或者说测试人员尤其是对于我们的公司而言能够造就100条数据就不错了。但是客户呢 有没有换位思考呢?
- 当客户数据量极大时如何设计表
- 数据量极大时用什么排序方法比较好
- 当SqlServer数据量很大时,如何优化表格能加快处理速度
- 当数据量较大时,两个tab切换的效率问题
- 大数据量的数据库表设计技巧
- 大数据量的系统的数据库结构如何设计?
- 大数据量的系统的数据库结构如何设计?
- 大数据量的系统的数据库结构如何设计?
- 大数据量的系统的数据库结构如何设计
- 大数据量的系统的数据库结构如何设计?
- 当你面对客户刁难时,持续更新。。
- 莫把用户当客户
- 设计和开发如何获取真实的客户产品需求
- 当进行数据量大的更新时显示正在更新的动画
- 当客户访问一个需登陆的页面时会转到登陆页面,当客户登陆成功后会自动跳转到客户登陆前的那个页面,请问该如何实现?
- 遇到问题时,如何跟客户沟通
- 当崩溃时如何恢复?
- 当崩溃时如何恢复
- DSP函数初步解析 101103
- 15 个 JavaScript Web UI 库
- 百姓网
- vc6的18个小技巧
- 线程同步- EventWaitHandle类的子类ManualResetEvent的用法
- 当客户数据量极大时如何设计表
- SQLSERVER XML
- 跨线程安全调用Windows 窗体控件
- CPU指令系统
- 我的输入法不见了,而且用shift+ctrl也切换不了
- ASP.net出现“访问IIS元数据库失败”解决方法
- VC6命令行编译工程方法
- 易软会员、会员积分管理软件
- smarty连接字符串