09 2009 档案

摘要:工作项目报告,所以抹掉项目名先,以“X”代之。分割线内内容仅代表个人意见,与所供职企业及参与社区无关。===================================X 从很早的时候就出现各种数据库访问错误。包括链接数占用过多,死锁,僵尸事务等。本周我集中梳理了一遍代码。我认为,虽然数据库设计方面有诸多不合理之处,但是这些不合理主要影响业务错误,造成 X 性能和使用上的问题是因为使用的ORM框架 storm 有严重的缺陷。首先,storm 对数据库架构的同步有非常奇怪的设定。它不自动同步表结构,却插手外键关联关系。强制要求外键必须都是级联更新、级联删除、set null。且不说其设定中有 阅读全文
posted @ 2009-09-25 11:57 计算机技术 阅读(702) 评论(0) 推荐(0)
摘要:数据库的架构与设计,应该从整体的范围去看问题,要从“数据存储和管理服务”的角度,而不是“数据库软件” 应用层开发阶段,可以不加入外键,在数据库运营阶段,由DBA补完 ID列的主键身份,其实只是为了与ORM妥协,在很多情况下,一个表只有ID主键列,既危险又愚蠢。如果应用层存在BUG,就会引发严重问题。我的建议是,至少在运营前期,就为关键实体数据加上唯一索引。 存储过程有没有用?这个要看情况。做数据库架构就像建筑工程,不是“对”“不对”这么简单。早年Oracle宣传一切逻辑都封装在存储过程中,数只从存储过程访问,这叫蛋疼。后来MySQL宣传外键存储过程触发器都不需要,只要能增删改查,这叫犯二。 . 阅读全文
posted @ 2009-09-17 14:00 计算机技术 阅读(166) 评论(0) 推荐(0)
摘要:前几天有个朋友提了一个问题:应用平台需要统计最近访问的20个用户的信息。我第一个想到的是用memcache之类的专用的缓冲,以用户名为键,以最后访问时间为值,如果用户访问比较均匀,限定一个合适的 超时值,查询的时候遍历过滤就好了,虽然不是很精确,但是实现起来够简单。答:不可以,领导要求只在数据库端解决。环境准备提问的朋友使用的是 MySQL ,这里我用一个 PostgreSQL 8.4(Enterprise DB PostgresPlus Stand Server 8.4) 建立实验环境。操作系统是 Windows 7 RC。客户端是 Emacs sql-postgres,/timing on 阅读全文
posted @ 2009-09-01 10:41 计算机技术 阅读(232) 评论(0) 推荐(0)