Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

骑虎的康盛,两难的站长,关于Discuz发展的讨论

[复制链接]
 楼主| mark35 发表于 2012-6-12 14:52:26 | 显示全部楼层
本帖最后由 mark35 于 2012-12-3 21:29 编辑
【MySQL 严重 Bug - 用户登陆漏洞】

Security vulnerability in MySQL/MariaDB 在知道用户名的情况下(如root),直接反复重试(平均大约256次)即可登入。

受影响的版本:

All MariaDB and MySQL versions up to 5.1.61, 5.2.11, 5.3.5, 5.5.22 are vulnerable.
MariaDB versions from 5.1.62, 5.2.12, 5.3.6, 5.5.23 are not.
MySQL versions from 5.1.63, 5.5.24, 5.6.6 are not.

详情请点击这里 http://seclists.org/oss-sec/2012/q2/493

============== 补充说明 ==================

这个 Bug 在官方编译的版本中没有发现。如果你是下载的源码,然后自己编译的就有可能遇到这个问题。

这个问题和 memcmp() 这个函数的返回值有关系。目前知道的情况来看,gcc 自带的 memcmp 是安全的,BSD libc 的 memcmp 是安全的。Linux glibc sse 优化过的 memcmp 会有这个问题。

http://www.oschina.net/news/29899/mysql-root-bug

这可能就是前段时间被大规模拖库的原因吧


回复

使用道具 举报

lyf806 发表于 2012-6-12 14:59:20 | 显示全部楼层
mark35 发表于 2012-6-5 09:29
X2.5介绍上表分服务器的新功能看似不错,可又有多少站长供得起多服务器呢。最多一台服务器跑webserver+附 ...

草根站长鸭梨灰常大
回复

使用道具 举报

nnsea 发表于 2012-6-12 15:33:02 | 显示全部楼层
说得好,要么出两种版本,一种适合大的,一种适合大众。
回复

使用道具 举报

cmubbs 发表于 2012-6-12 16:54:11 | 显示全部楼层
不太懂,但挺长见识
回复

使用道具 举报

 楼主| mark35 发表于 2012-6-12 17:27:59 | 显示全部楼层
本帖最后由 mark35 于 2012-6-12 17:31 编辑
nnsea 发表于 2012-6-12 15:33
说得好,要么出两种版本,一种适合大的,一种适合大众。

大众的要求却往往是最多最变态的~
回复

使用道具 举报

枯心树 发表于 2012-6-12 22:07:42 | 显示全部楼层
本帖最后由 枯心树 于 2012-6-12 22:34 编辑
mark35 发表于 2012-6-12 13:56
mysql可以做成一键LAMP安装,pgsql因为安全性相对很高所以安装不太方便,VPS还好点,在虚拟空间上就只能看 ...

这样吧。我把转换pgsql的利弊做一个小小的比较。欢迎大家补充,顺便权衡权衡

认为dx 数据平台需要转换到pgsql的原因可能有以下:
1)mysql不是标准的SQL数据库,牺牲标准来换取速度
2)mysql已被商业公司收购,虽然承若到2014年继续免费。不过最近该公司已经推出了好3个版本的mysql,而且只有社区版本是免费的。不能看出,该公司为了商业版的推广和收费,免费版本的改进势必也肯定不会有很大的突破,至少不可能会以免费版本为重心去开发了。而且收购mysql的公司本身就有自己的知名商业数据库。因此,mysql免费版本就注定了不可能会有很好的发展,至少不明朗
3)mysql已经逐步不适合日益需求的数据库处理要求,经常出现错误不说。而且安全性远远没有后起之秀pgsql那么强大。当然更要命是其不是标准的sql数据库,因此就决定了,转换进程拖得更长,dz随着不断的发展,就更难转换到其他数据库平台了。

pgsql没有以上问题,相反由于其是开源免费的标准数据库,而且使用的是开源的协议,还容许任何人和团体进行2次开发。当然更重要是,pgsql 有着更多的志愿者完善,使用该数据库的站点越来越多,特别是日本大部分都是用该系统。。

认为dx 数据平台不能转换到pgsql的原因可能有以下:

1)mysql 在国内已经占有绝对的市场,而且对win系统的服务器支持比pgsql好,当然最新的pgsql已经解决了这个win系统的安装问题

2)如果需要转换到新的pgsql平台,那么对官方的开发人员以及第三方开发者是一个严峻的挑战。官方开发者都是mysql平台下的开发高手,突然要转换到pgsql平台,估计需要重新学习编程语法,而且官方开发者对pgsql的开发经验几乎是0,更不用说在dz这样的高要求下开发了。搞不好开发团队需要大换血,这样的牺牲太大了。

同时,由于是程序开发官方,如果需要转换到新的pgsql平台,那么开发人员不仅需要精通pgsql数据开发,还要对mysql也精通,毕竟现在国内网络上99%的论坛都是基于mysql的。。单单程序升级转换就头疼。 还有第三方开发团队,如果抛弃mysql,那么他们也必须要重新学习pgsql下的编程,虽然有mysql编程基础,不过毕竟是新的数据库平台,估计很大部分的开发者会选择离开。可以说是动一发牵全身。当然,这样的影响,并不仅仅是程序和第三方开发者,还有现在的云平台,周边产品全部都需要转换到新的pgsql数据库平台,,工作量岂是巨大那么简单?

3)新的数据库平台虽然很强大,适合不断发展的程序对数据库的高要求,不过,由于pgsql对服务器硬件要求教高。当然这个硬件随着硬件行业的发展,会逐渐减轻,不过pgsql数据平台也不断的开发新版本,也会对硬件越来越高的要求。。。



个人看法吧:

pgsql是一个标准数据库平台,开源免费,性能强大,拥有开源的协议。可以二次开发成自己的标准数据库,种种看来,应该会成为未来互联网的数据库主流,至少更符合开源精神。超过先天性不足的mysql也仅仅是时间问题。但是,pgsql的普及需要很多条件,人才,环境,硬件等等。最主要是精通的人才。。

当然,pgsql如果借助国内站点普及率最高的dz和pw论坛,应该可以加快普及率(或者干脆的说,没有dz和其他程序开发商的支持,国内普及基本很难)。因此mysql的轻快,在很长一段时间内(至少5年内,除非全收费了)仍然是中小站点使用的首选吧。

最后,如果pgsql在速度上如果基本达到mysql,而数据库版本的更新对硬件的要求持续降低或者保存不变(相对it硬件的发展),那么普及道路也许会更好走很多。
回复

使用道具 举报

枯心树 发表于 2012-6-12 22:33:31 | 显示全部楼层
本帖最后由 枯心树 于 2012-6-14 12:51 编辑

好吧,对这个话题兴趣了点。就多谈谈。
我很欣赏你旧贴(地址)说的
对于dx功能变化不了解不评论,对于程序架构我的感受是:DZ成也mysql败也mysql

确实让我大吃了一惊。且不说对还是错吧。毕竟自己对技术基本是0。但还是让我想起了动网。动网就是由于其编程语言和数据库平台,才导致它的没落。
如果那天mysql的免费版本被开发公司抛弃或者放慢开发步伐。那么dz步动网后尘也并非没有可能。随着DX2的版本开发进程,越来越多的功能和其他模块或者插件扩展,程序也会越来越多的bug,由于mysql的先天性不足,确实有种危机感越来越重的感觉。

同时,我又想,一旦那天国内某巨头,比如百度开发一款php+pgsql的程序。功能和性能可以媲美dx和pw的。那么会发生什么样的情况呢??

以百度的影响力和财力,技术,还有对互联网的野心。百度开发网站程序并非是天方夜谭,也许百度早就后悔没有收购康盛。。。
回复

使用道具 举报

IsaacZ 发表于 2012-6-12 23:20:31 | 显示全部楼层
自从升了2.5,速度就成为我的心病!
回复

使用道具 举报

IsaacZ 发表于 2012-6-12 23:24:12 | 显示全部楼层
mark35 发表于 2012-6-7 09:20
我真是愤怒了,这tm是什么破系统,一编辑帖子,引用部分就错乱,把我写的所有内容并入了被引用部分中,并且 ...

编辑器问题不止这一个,反映好久了,一些小BUG官方不理的。
回复

使用道具 举报

 楼主| mark35 发表于 2012-6-13 16:29:26 | 显示全部楼层
本帖最后由 mark35 于 2012-12-3 21:33 编辑

mysql的查询优化器虽然也称为“基于成本的优化器” (CBO: Cost Base Optimizer)  但实践中对于多条索引的选择尚简单,无法采用效率更高的索引


加上dz自身对于数据表索引的优化也不足够,所以dz的性能受到不少影响。用户从dz后台也无法获得直观数据库运行数据来判断数据库性能,最多的恐怕就是“修复”了吧……

这是pg可以提供的信息,


对于cdb_members 这张表,尺寸是78MB,无行外存储。绝大部分是更新,极少的删除。HOT更新次数接近总更新次数,说明数据碎片不会大,执行VACUUM紧迫性不高。
关于HOT更新技术:
大家知道PostgreSQL使用多版本技术,对记录的更新操作都会产生一个新版本,版本之间从老到新形成一条版本链。此外更新操作不但会在堆中产生记录的新版本,在表的每个索引中也会产生新版本的索引记录。即对一条记录的每个版本都有对应版本的索引记录,即使更新操作没有修改索引属性,也会在每个索引中都产生一个新版本。这一技术的问题是浪费存储空间,老旧版本占用的空间只有在进行VACUUM时老能被回收,增加的数据库的负担。

为减轻这一问题,PostgreSQL 8.3中加入了HOT技术。使用HOT后,若所有索引属性都没被修改(索引键是否修改是在执行时逐行判断的,因此若一条UPDATE语句修改了某属性,但前后值相同则认为没有修改),且新版本与原版本存储在一个页面上则不会产生新的索引记录,因此这些记录被称为HOT(Heap Only Tuple)。HOT会被打上HEAP_ONLY_TUPLE标志,而HOT的上一个版本则被打上HEAP_HOT_UPDATED标志。当通过索引获取记录时首先会找到同一页中最老的拥有HEAP_ONLY_TUPLE标志的版本,然后顺着版本链向后找,直到遇到HOT为止。限制HEAP_ONLY_TUPLE版本与HOT在同一页的目的是为了通过版本链向后找时不产生额外的IO操作从而影响到性能。因此HOT技术消除了拥有完全相同键值的索引记录,减小了索引大小。


这个图片显示数据表状态。对于用户表,估算是14万行记录,顺序扫描了2.7K次,索引扫描了30M次,索引扫描占了99.99%,影响速度的全表扫描几乎没有,说明索引效率极高。
后面的删除率及更新率(百分率)如果较高的话就说明此表需要做整理(VACUUM)了,尤其是删除率。



这张图显示所有索引的信息。图中可以发现 members.email 这条索引几乎没使用,这要么是没有对email的查询,也可能会是因为索引设置不当pgsql使用了其他的索引而放弃此条索引(对于email这个例子来说不大可能)。
members.bday这条索引使用相当高,说明论坛开启了会员生日的相关功能。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-12-27 16:03 , Processed in 0.043295 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表