论坛首页 编程语言技术论坛

SPS Discuz7.2 超强给力修改版 update 2012.02.14

浏览 12445 次
精华帖 (0) :: 良好帖 (4) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-02-14   最后修改:2012-02-14
yawei 写道
1、数据库采用不支持事务的MyISAM引擎,有些DML/DDL操作不用事务包裹在过程中有失败步骤出现是很容易导致逻辑问题(比如发了帖或者对帖子进行了管理操作后却找不到帖子在哪儿,即使在后台管理中也找不到)。即便康盛以后使用支持事务的InnoDB引擎也无法彻底解决这个问题——InnoDB引擎对于DDL是不支持事务的。
======================================
这个问题导致做数据备份或恢复的时候极其危险(对于经验少的用户来说)。 我的朋友发生过帖子全部丢失的情况。

不过ddl不支持事务应该影响不大吧?


MyISAM非MVCC,mysqldump默认会锁表,如果数据量大那么对运行是有影响的
引用
   然后问题就出现了,select 的时候老是出现表不存在。每做一次,不是这张表不在,就是那张表不在。真是叫人欲哭无泪啊。好容易数据库好了,同一台机器上的短信又不能操作了,偶就只好继续折腾下去。用fsck看硬盘有没有坏节点,重新安装整个应用等等。终于,在偶把这套系统弄明白的时候,也在某个网页发现表损坏的根本原因:“对一个正在运行的数据库进行备份请慎重!!如果一定要在服务运行期间备份,请添加 –skip-opt选项,如:/usr/local/mysql/bin/mysqldump --skip-opt -uroot -p123456 mysqlfxv >mySQL.SQL”,只用--opt,数据库会锁表的说,不但影响正常交易,还不能肯定表是否会损坏。


pgsql是多版本并发,pg_dump不会锁表不会影响读操作。

另外如果不支持事务,在恢复备份的时候就没办法实现无错误恢复。psql加个 -1 参数就可以实现在导入sql文件过程中如果出现任何错误都会全部回滚———要么全部成功导入要么全部失败,不会插入到一半错误退出留下一个烂摊子。

Mysql innodb的事务不支持DDL对老版本影响还不是很大,最多是安装需要创建数据表插件时可能出小问题。但对DZX来说可能就比较麻烦:DZX不少新功能,比如帖子后台人工分表啥就和DDL有关,如果不能用事务包裹整个流程那么结果不可预期。站长经常遇到的后台管理操作导致一系列问题皆与非事务有关。
0 请登录后投票
   发表时间:2012-02-14  
2012.02.14 更新
0 请登录后投票
   发表时间:2012-02-15  
这个要顶, 如果康盛能把你的修改融合进去就好了。
0 请登录后投票
   发表时间:2012-02-15   最后修改:2012-02-15
yawei 写道
这个要顶, 如果康盛能把你的修改融合进去就好了。


SPS版不少修改是配合pgsql数据库的先进技术使用的,对性能提高不错,对mysql无效。
不过如果参照“DZ7.2坑爹集锦”改进官方版还是有性能提高的。
康盛正被DZX2.5测试版搞得焦头烂额估计顾不上古董的DZ7.2了~
0 请登录后投票
   发表时间:2012-02-17  
postgre是不错,不过中间件支持没mysql好吧。。
两年前我用psql的时候,为了部署分布式和ha,折腾得实在够呛
0 请登录后投票
   发表时间:2012-02-21  
sniffer123 写道
postgre是不错,不过中间件支持没mysql好吧。。
两年前我用psql的时候,为了部署分布式和ha,折腾得实在够呛


pgsql以前版本在热备和同步上比较查,得依靠第三方软件(比如slony)。9.1开始自带基于流复制的hotstandby功能,还不错。至于分布尚未用到不了解。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics