wordpress能承载多少数据库

新手使用WordPress的数据库空间需求,通常在50MB至500MB之间应该足够使用。这一范围取决于多个因素,包括网站规模、内容数量、插件和主题的使用等。

对于刚刚起步的新手来说,WordPress网站通常不会立即需要大量存储空间。一个基本的WordPress安装加上一些初始内容,可能只需要几十兆字节的空间。然而,随着网站的发展,内容的增加,以及可能安装的插件和主题数量的增加,数据库空间的需求也会相应增长。

例如,每发布一篇带有几张图片和几个链接的*客文章,数据库的大小就会增加。同样,安装的每个插件和主题都可能对数据库大小产生影响。一些复杂的插件可能需要更多的数据库空间来存储设置、选项和其他相关数据。

此外,还需要考虑备份和版本控制的空间需求。定期备份网站是保持数据安全的重要步骤,而这些备份文件会占用额外的存储空间。同样,WordPress的自动版本控制功能也会存储旧版本的文章和页面,这同样会增加数据库的大小。

总的来说,新手使用WordPress时,初始的数据库空间需求可能并不大,但随着网站的发展,这一需求会逐渐增加。因此,在选择托管服务时,建议选择提供可扩展存储空间的方案,以便在未来根据需要增加存储空间。这样既可以满足当前的需求,又可以为未来的增长做好准备。

#1,若您的WordPress版本为2.3及以前,可采用如下方法令系统自动缓存内部调用函数,而完全不用担心缓存对系统交互*的影响(如延迟等)。

Step1:在WordPress安装目录下的wp-content文件夹下创建名为cache的目录,属*设置为755,如下图:

Step2:打开WordPress安装根目录下的wp-config.php文件,在其尾端加入define('ENABLE_CACHE', true);,如下图:

保存后上传更新文件,刷新页面后,可发现新创建的cache文件夹中生成了如下文件:

缓存的是一些不需要经常修改的文件,如分类名称、存档日期等。该缓存方法名为object缓存,并不缓存网页,而传统的wp-cache调用是缓存网页的,会影响网页的交互实时*,使用户体验些许变差。

#2,若您的WordPress版本为2.5及以上版本,由于新版WP取消了object缓存功能可以使用将所有待查数据都存入数据库options表(一般的默认名称为wp_options)的方法,大幅度减少数据库查询次数。ThinkAgain的解释如下:

默认WP有10个数据表,wp_posts和comments主要存储文章内容和评论,

其它的几个包括term等存储了目录和标签等等。这里不细谈。wp_options用来存储Wordpress以及插件运行时所涉及的配置等。且WP会在

运行时自动读取该表的内容。换句话说,因为WP已经预读这部分内容,所以直接调用wp_options内的数据是不会产生数据库查询的。()

方法:假如要缓存的是分类名称调用表单,则写functions.php如下代码:

function cache_category(){

$cached= get_option('multicolor_cache_category');

if($cached){

echo$cached;

}else{

$cached= cache_collapsible_list_cats();

echo"Update cache";

echo$cached;

}

}

add_action('publish_post','cache_collapsible_list_cats');

当然,这显得很复杂,不过ThinkAgain说,WP2.6也是可以使用object自动缓存功能的,请等待他更新的方法。

#3,由于WordPress的内部**链接调用函数为了追求老版插件的*大兼容*所以较啰嗦,比较耗费查询次数,可在functions.php写入如下代码,大幅度减少查询次数(均适用)

function revised_permalink($post,$leavename=false){

$rewritecode= array(

'%year%',

'%monthnum%',

'%day%',

'%hour%',

'%minute%',

'%second%',

$leavename?'':'%postname%',

'%post_id%',

'%category%',

'%author%',

$leavename?'':'%pagename%',

);

if( empty($post->ID)) return FALSE;

if($post->post_type=='page')

return get_page_link($post->ID,$leavename);

elseif($post->post_type=='attachment')

return get_attachment_link($post->ID);

$permalink= get_option('permalink_structure');

if(''!=$permalink&&!in_array($post->post_status, array('draft','pending'))){

$unixtime= strtotime($post->post_date);

$category='';

if( strpos($permalink,'%category%')!== false){

$cats= get_the_category($post->ID);

if($cats)

usort($cats,'_usort_terms_by_ID');// order by ID

$category=$cats[0]->slug;

if($parent=$cats[0]->parent)

$category= get_category_parents($parent, FALSE,'/', TRUE).$category;

// show default category in permalinks, without

// having to assign it explicitly

if( empty($category)){

$default_category= get_category( get_option('default_category'));

$category= is_wp_error($default_category)?'':$default_category->slug;

}

}

$author='';

if( strpos($permalink,'%author%')!== false){

$authordata= get_userdata($post->post_author);

$author=$authordata->user_nicename;

}

$date= explode("",date('Y m d H i s',$unixtime));

$rewritereplace=

array(

$date[0],

$date[1],

$date[2],

$date[3],

$date[4],

$date[5],

$post->post_name,

$post->ID,

$category,

$author,

$post->post_name,

);

$permalink= get_option('home'). str_replace($rewritecode,$rewritereplace,$permalink);

$permalink= user_trailingslashit($permalink,'single');

return ***ly_filters('post_link',$permalink,$post);

} else{// if they're not using the fancy permalink option

$permalink= get_option('home').'/?p='.$post->ID;

return ***ly_filters('post_link',$permalink,$post);

}

}

点击下面的链接下载修改好的文件,请解压后上传或粘贴到您原来的文件中。此方法文章页查询次数至少可降低10。

注意:如果您原来的插件有诸如下面的代码,并且您的**链接方式为postname而不是postid,请修改

$sql="SELECT ID, post_title, comment_count,post_date, post_content FROM$tableposts WHERE post_status='publish'";

$sql="SELECT ID, post_name, post_title,

comment_count,post_date, post_content FROM$tableposts WHERE

post_status='publish'";

至此您的数据库查询次数将减小为个位数,繁忙时访问速度提高较**,速度应当与直接生成静态文件时的情况差距不大,但互动*丝毫不减。

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于 Oracle旗下产品。MySQL是*流行的关系型数据库管理系统之一,在 WEB应用方面,MySQL是*好的 RDBMS(Relational Database Management System,关系数据库管理系统)应用软件。“总是在灾难发生后,才想起容灾的重要*。总是在吃过亏后,才记得曾经有人提醒过。”,所以此处列出一些MySQL的必要的优化和建议。

1.核心类

♦不在数据库做计算,cpu计算务必移至业务层;

♦控制单表数据量,单表记录控制在千万级;

♦控制列数量,字段数控制在20以内;

♦平衡范式与冗余,为提**率可以牺牲范式设计,冗余数据;

♦拒绝3B(big),大sql,大事务,大批量;

2.字段类

♦用好数值类型

tinyint(1Byte)

smallint(2Byte)

mediumint(3Byte)

int(4Byte)

bigint(8Byte)

bad case:int(1)/int(11)

♦有些字符转化为数字

例如:用int而不是char(15)存储ip

♦优先使用enum或set

例如:sex enum(‘F’,‘M’)

♦避免使用NULL字段

NULL字段很难查询优化

NULL字段的索引需要额外空间

NULL字段的复合索引无效

bad case:

name char(32) default null

age int not null

good case:

age int not null default 0

♦不在数据库里存图片

3.索引类

♦谨慎合理使用索引

改善查询、减慢更新

索引一定不是越多越好(能不加就不加,要加的一定得加)

覆盖记录条数过多不适合建索引,例如“*别”

♦字符字段必须建前缀索引

♦不在索引做列运算

bad case:

select id where age+1= 10;

♦ innodb主键合理使用自增列

主键建立聚簇索引

主键不应该被修改

字符串不应该做主键

如果不指定主键,innodb会使用**且非空值索引代替

♦不用外键,请由程序保证约束

4. sql类

♦ sql语句尽可能简单

一条sql只能在一个cpu运算

大语句拆小语句,减少锁时间

一条大sql可以堵死整个库

♦简单的事务

事务时间尽可能短

bad case:

上传图片事务

♦避免使用触发器,用户自定义函数,请由程序取而代之

♦不用select*

消耗cpu,io,内存,带宽

这种程序不具有扩展*

♦ OR改写为IN()

♦ OR改写为UNION

PS:**的mysql内核已经进行了相关优化

♦ limit**分页

limit越大,效率越低

select id from t limit 10000, 10;

应该改为=>

select id from t where id> 10000 limit 10;

♦使用union all替代union,union有去重开销

♦尽量不用连接join

♦务必请使用“同类型”进行比较,否则可能全表扫面

♦打散批量更新

♦使用新能分析工具

show profile;

mysqlsla;

mysqldumpslow;

explain;

show slow log;

show processlist;

show query_response_time(percona)

相关文章
在线客服
微信联系
客服
扫码加微信(手机同号)
电话咨询
返回顶部