要说狄枫对于网站程序哪一个最熟悉,莫过于wordpress了,不过在我还没有学习PHP和MYSQL之前,我还是不了解的,但是当我了解到数据库之后,我发现,写程序什么的就更方便了,以前因为需求不大,所以我几乎没去动过wordpress的数据库表,而现在,因为要做一个最近7天30天一年这样的浏览数,所以我尝试了进行数据库操作,而后发现wp-postviews代码非常的垃圾。

来源于网上代码

因为我本身没有插件过wp-postviews这个插件的,只是我在写代码的时候不会写,就在网上查了一下,看到有很多人在使用wp-postviews进行修改,而后我就拿他的数据库查询代码来使用了,使用之后,我发现了一个严重性的问题,那就是我查最近7天的数据需要花费的时间竟然需要0.5秒!如果我要查三个数据那么就需要花费1.5秒!这样的查询数据太慢了!慢的有点恐怖!当然这是前几天出现的,而当时看到这个我就放弃了。下面是网上摘的代码,来源于wp-postviews这个插件。不知道是否改进没有。

SELECT DISTINCT wp_posts.*, (meta_value+0) AS post_views_count FROM wp_posts LEFT JOIN wp_postmeta ON wp_postmeta.post_id = wp_posts.ID WHERE post_date >= (select DATE_SUB(max(post_date),INTERVAL '$days' DAY) from wp_posts WHERE post_type='post' AND post_status = 'publish' AND meta_key = 'post_views_count' AND post_password = '') AND post_type='post' AND post_status = 'publish' AND meta_key = 'post_views_count' AND post_password = ''  ORDER  BY post_views_count DESC LIMIT 0,10

四处求学之痛

虽然狄枫有认识一些编程的朋友,不过他们懂PHP的非常之少,大部份都是asp.net或者asp,或者说他们很少对mysql进行操作吧,一般都只是在弄sqlserver,所以我在一个我呆了五六年的群里发问了,下面是截图。

求学之痛

最后把问题解决的还是我自己,对的,我一直坚信,这个世界上,能够真正帮你解决问题的只有你自己,别人只是指导而已,当然我解决的问题并不是在群里问,而是直接在网上搜索相关的知识和在项目上进行测试,最后发现,只需要在代码上加个0就可以让他以数字类型进行排序了!这就是代码,一个字符就可以让你的程序变的不一样! 后来解决这个问题之后,我就开始研究最近7天30天这种获取的mysql数据库,因为一开始我看到wp-postviews这个数据库查询的代码实在太长了而且很乱,我看不懂,所以我决定自己写,最后发现一个联表查询,很不错,查询速度非常非常的快!跟普通查询一个样子!当时我的感觉就是太爽了!

问题出现总有原因

wordpress为什么这么慢?主要就是因为很多插件的代码写的太烂了,使用了过多的查询导致CPU和数据库查询太频繁导致的,还有一说就是,WORDPRESS数据库太大的时候,访问速度也会变慢,主要的原因还是因为数据库查询的问题,好吧,今天深刻体会到,当你遇到编程问题无人教你之时是多么的痛苦了。 编程不想网上赚钱,网上赚钱只需要思路,思路这种东西,别人基本上给不了你多少,最主要的还是你有了思路要去执行,狄枫有时候就算分享了一些思路出来,但是还是很少人会去操作的,免费的东西在大部份人的眼里看来是不值钱的,其实免费的东西也是有他自身的价值的,只是你没有发现而已。好了,这篇文章纯是和大家谈关于wp-postviews这个插件问题的,当然,我没有看过它的代码,上面的代码也只是摘自网上,我修改了几个参数而已。