Discuz X系统:【效率机制】【MySQL 优化】详解 discuz教程 - discuz - 爱建站

,,cms教程,discuz教程,,

SEO SEO

首页  >   discuz > Discuz X系统:【效率机制】【MySQL 优化】详解 discuz教程   >  正文

 

在整个 Discuz! X2 5 产品中,为了提供效率,需要对 SQL 做相应的优化


在整个 Discuz! X2.5 产品中,为了提供效率,需要对 SQL 做相应的优化。有时候不能忽略一些细小的优化,当出现过多未优化的细节时,也能带来致命的负载问题。

延迟更新机制

例如:首页的在线人数等,在实际产品中,有些数据不一定需要实时更新的,因为对于这类型的数据来说,实时更新的价值不高,对于这种情况我们可以考虑在产品研发过程中引入廷迟更新机制,这样可以从一定程度上降低SQL的负载。

索引

索引的合理使用,能给你带来高效的SQL查询,但不是索引越多越好,索引的引入需在查看整个模块的设计,使之最大程度上使用索引。

读写分离

读写分离,在X2的版本中,我们引入了多SQL服务器的支持,在主从服务器中,你可以配置写服务器跟读服务器,这样对于负载高的站点中可以 使用这个功能达到读写分离,降低由于写过程序中造成的MySQL表锁定后的SQL排队等候时间过长。当你的服务器支持读写分离要求时,你可以在 config_global.php中配置。例如:

/**
 * 数据库主服务器设置, 支持多组服务器设置, 当设置多组服务器时, 则会根据分布式策略使用某个服务器
 * @example
 * $_config["db"]["1"]["dbhost"] = "localhost"; // 服务器地址
 * $_config["db"]["1"]["dbuser"] = "root"; // 用户
 * $_config["db"]["1"]["dbpw"] = "root";// 密码
 * $_config["db"]["1"]["dbcharset"] = "gbk";// 字符集
 * $_config["db"]["1"]["pconnect"] = "0";// 是否持续连接
 * $_config["db"]["1"]["dbname"] = "x1";// 数据库
 * $_config["db"]["1"]["tablepre"] = "pre_";// 表名前缀
 *
 * $_config["db"]["2"]["dbhost"] = "localhost";
 * ...
 *
 */
$_config["db"][1]["dbhost"]  		= "localhost";		
$_config["db"][1]["dbuser"]  		= "root";		
$_config["db"][1]["dbpw"] 	 	= "root";		
$_config["db"][1]["dbcharset"] 		= "gbk";		
$_config["db"][1]["pconnect"] 		= 0;			
$_config["db"][1]["dbname"]  		= "ultrax";		
$_config["db"][1]["tablepre"] 		= "pre_";		

/**
 * 数据库从服务器设置( slave, 只读 ), 支持多组服务器设置, 当设置多组服务器时, 系统每次随机使用
 * @example
 * $_config["db"]["slave"]["1"]["dbhost"] = "localhost";
 * $_config["db"]["slave"]["1"]["dbuser"] = "root";
 * $_config["db"]["slave"]["1"]["dbpw"] = "root";
 * $_config["db"]["slave"]["1"]["dbcharset"] = "gbk";
 * $_config["db"]["slave"]["1"]["pconnect"] = "0";
 * $_config["db"]["slave"]["1"]["dbname"] = "x2";
 * $_config["db"]["slave"]["1"]["tablepre"] = "pre_";
 *
 * $_config["db"]["slave"]["2"]["dbhost"] = "localhost";
 * ...
 * 
 */
$_config["db"]["slave"] = array();
				


SQL查询与循环

禁止在循环中进行相应的SQL查询,当遇到这种情况时,可以尽可能的将其转换成循环外的查询。

NOT IN

在SQL查询中禁用NOT IN条件,NOT IN的效率比IN低很多,当使用IN时,也要尽可能的保证IN的数量。

SQL分拆

化繁为简,在优化过程中,尽可能的化繁为简,把复杂的SQL分拆成几个简单的SQL更有种于对整体SQL的优化处理。

温馨提示:还在苦苦寻找discuz模板吗?来 discuz论坛模板 频道看看吧,说不定有你喜欢的哦!


Discuz X系统:【效率机制】【MySQL 优化】详解 discuz教程
http://www.yuedudg.cn/article/1038431.html

 

友情链接
wp之家 discuz经验网 zblog之家
phpcms之家 cms综合网 ecshop经验网
帝国cms常识 织梦之家


Tags: cms教程 discuz教程


手机浏览本文

Discuz X系统:【效率机制】【MySQL 优化】详解  discuz教程

Discuz X系统:【效率机制】【MySQL 优化】详解 discuz教程

站内推荐

网站分类

标签列表

关于我们
文章内容来源互联网仅供参考,如果还有疑问请联系我们!我们将竭力帮您解决您的问题
联系我们:

QQ: 397423577 

email:397423577@qq.com

微信:ganenboy