ZomgStuff
11-30-2008, 02:50 AM
So I can't tell if bluehost.com has some really outdated hardware, or am I really causing them server performance issues. Basically they said if I cause them problems one more time they're permanently suspending my account. I've apparently running a lot of slow SQL queries.
A little information about my site
URL: http://forum.zomgstuff.net/
Total Threads: 16,353
Total Posts: 160,968
Total Members: 9,477
Average Daily Unique Members: ~105
Data Usage: 128.15 MB
Index Usage: 51.23 MB
Size of database SQL backup: ~135mb
I also have quite a bit of plugins as well.
Server average load times used to be 2-4 seconds, but after I forced guests to register to view thread contents, it's currently 1.3 seconds.
I've looked at the sql_sloq_queries log in my hosting and I see dozens of daily entries. Most of them say the "slow" script ran for an average of 3-4 seconds.
Here's a couple of examples of slow queries.
# Fri Nov 28 13:19:35 2008
# Query_time: 2 Lock_time: 0 Rows_sent: 4 Rows_examined: 32
use zomgstu1_theforums;
SELECT
post.*, post.username AS postusername, post.ipaddress AS ip, IF(post.visible = 2, 1, 0) AS isdeleted,
user.*, userfield.*, usertextfield.*,
icon.title as icontitle, icon.iconpath,
avatar.avatarpath, NOT ISNULL(customavatar.userid) AS hascustomavatar, customavatar.dateline AS avatardateline,customavatar.width AS avwidth,customavatar.height AS avheight,
spamlog.postid AS spamlog_postid,
deletionlog.userid AS del_userid, deletionlog.username AS del_username, deletionlog.reason AS del_reason,
editlog.userid AS edit_userid, editlog.username AS edit_username, editlog.dateline AS edit_dateline,
editlog.reason AS edit_reason, editlog.hashistory,
postparsed.pagetext_html, postparsed.hasimages,
sigparsed.signatureparsed, sigparsed.hasimages AS sighasimages,
sigpic.userid AS sigpic, sigpic.dateline AS sigpicdateline, sigpic.width AS sigpicwidth, sigpic.height AS sigpicheight,
IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid, infractiongroupid
FROM post AS post
LEFT JOIN user AS user ON(user.userid = post.userid)
LEFT JOIN userfield AS userfield ON(userfield.userid = user.userid)
LEFT JOIN usertextfield AS usertextfield ON(usertextfield.userid = user.userid)
LEFT JOIN icon AS icon ON(icon.iconid = post.iconid)
LEFT JOIN avatar AS avatar ON(avatar.avatarid = user.avatarid) LEFT JOIN customavatar AS customavatar ON(customavatar.userid = user.userid)
LEFT JOIN spamlog AS spamlog ON(spamlog.postid = post.postid)
LEFT JOIN deletionlog AS deletionlog ON(post.postid = deletionlog.primaryid AND deletionlog.type = 'post')
LEFT JOIN editlog AS editlog ON(editlog.postid = post.postid)
LEFT JOIN postparsed AS postparsed ON(postparsed.postid = post.postid AND postparsed.styleid = 72 AND postparsed.languageid = 1)
LEFT JOIN sigparsed AS sigparsed ON(sigparsed.userid = user.userid AND sigparsed.styleid = 72 AND sigparsed.languageid = 1)
LEFT JOIN sigpic AS sigpic ON(sigpic.userid = post.userid)
WHERE post.postid IN (0,168362,168390,168583,168584)
ORDER BY post.dateline
# Sat Nov 29 20:35:29 2008
# Query_time: 6 Lock_time: 0 Rows_sent: 1000 Rows_examined: 14889
use zomgstu1_theforums;
SELECT postid
FROM post AS post
INNER JOIN thread AS thread ON(thread.threadid = post.threadid)
WHERE post.userid = 1
AND thread.forumid IN(104,2,90,102,131,12,429,430,426,69,431,18,44,43 2,132)
ORDER BY post.dateline DESC
LIMIT 1000
# Sat Nov 29 20:59:22 2008
# Query_time: 3 Lock_time: 0 Rows_sent: 4958 Rows_examined: 4958
use zomgstu1_theforums;
SELECT postid, wordid,
CASE intitle
WHEN 0 THEN score
WHEN 1 THEN score + 5
WHEN 2 THEN score + 5 + 5
ELSE score
END AS score
FROM postindex
WHERE wordid IN (0,1126,2261,5755)
Basically do you think I've outgrown shared hosting, or do I just need to make my scripts more efficient and optimize them?
A little information about my site
URL: http://forum.zomgstuff.net/
Total Threads: 16,353
Total Posts: 160,968
Total Members: 9,477
Average Daily Unique Members: ~105
Data Usage: 128.15 MB
Index Usage: 51.23 MB
Size of database SQL backup: ~135mb
I also have quite a bit of plugins as well.
Server average load times used to be 2-4 seconds, but after I forced guests to register to view thread contents, it's currently 1.3 seconds.
I've looked at the sql_sloq_queries log in my hosting and I see dozens of daily entries. Most of them say the "slow" script ran for an average of 3-4 seconds.
Here's a couple of examples of slow queries.
# Fri Nov 28 13:19:35 2008
# Query_time: 2 Lock_time: 0 Rows_sent: 4 Rows_examined: 32
use zomgstu1_theforums;
SELECT
post.*, post.username AS postusername, post.ipaddress AS ip, IF(post.visible = 2, 1, 0) AS isdeleted,
user.*, userfield.*, usertextfield.*,
icon.title as icontitle, icon.iconpath,
avatar.avatarpath, NOT ISNULL(customavatar.userid) AS hascustomavatar, customavatar.dateline AS avatardateline,customavatar.width AS avwidth,customavatar.height AS avheight,
spamlog.postid AS spamlog_postid,
deletionlog.userid AS del_userid, deletionlog.username AS del_username, deletionlog.reason AS del_reason,
editlog.userid AS edit_userid, editlog.username AS edit_username, editlog.dateline AS edit_dateline,
editlog.reason AS edit_reason, editlog.hashistory,
postparsed.pagetext_html, postparsed.hasimages,
sigparsed.signatureparsed, sigparsed.hasimages AS sighasimages,
sigpic.userid AS sigpic, sigpic.dateline AS sigpicdateline, sigpic.width AS sigpicwidth, sigpic.height AS sigpicheight,
IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid, infractiongroupid
FROM post AS post
LEFT JOIN user AS user ON(user.userid = post.userid)
LEFT JOIN userfield AS userfield ON(userfield.userid = user.userid)
LEFT JOIN usertextfield AS usertextfield ON(usertextfield.userid = user.userid)
LEFT JOIN icon AS icon ON(icon.iconid = post.iconid)
LEFT JOIN avatar AS avatar ON(avatar.avatarid = user.avatarid) LEFT JOIN customavatar AS customavatar ON(customavatar.userid = user.userid)
LEFT JOIN spamlog AS spamlog ON(spamlog.postid = post.postid)
LEFT JOIN deletionlog AS deletionlog ON(post.postid = deletionlog.primaryid AND deletionlog.type = 'post')
LEFT JOIN editlog AS editlog ON(editlog.postid = post.postid)
LEFT JOIN postparsed AS postparsed ON(postparsed.postid = post.postid AND postparsed.styleid = 72 AND postparsed.languageid = 1)
LEFT JOIN sigparsed AS sigparsed ON(sigparsed.userid = user.userid AND sigparsed.styleid = 72 AND sigparsed.languageid = 1)
LEFT JOIN sigpic AS sigpic ON(sigpic.userid = post.userid)
WHERE post.postid IN (0,168362,168390,168583,168584)
ORDER BY post.dateline
# Sat Nov 29 20:35:29 2008
# Query_time: 6 Lock_time: 0 Rows_sent: 1000 Rows_examined: 14889
use zomgstu1_theforums;
SELECT postid
FROM post AS post
INNER JOIN thread AS thread ON(thread.threadid = post.threadid)
WHERE post.userid = 1
AND thread.forumid IN(104,2,90,102,131,12,429,430,426,69,431,18,44,43 2,132)
ORDER BY post.dateline DESC
LIMIT 1000
# Sat Nov 29 20:59:22 2008
# Query_time: 3 Lock_time: 0 Rows_sent: 4958 Rows_examined: 4958
use zomgstu1_theforums;
SELECT postid, wordid,
CASE intitle
WHEN 0 THEN score
WHEN 1 THEN score + 5
WHEN 2 THEN score + 5 + 5
ELSE score
END AS score
FROM postindex
WHERE wordid IN (0,1126,2261,5755)
Basically do you think I've outgrown shared hosting, or do I just need to make my scripts more efficient and optimize them?