Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Database/World Building

Development::Database/World Building World Building forum, dedicated to the EQEmu MySQL Database. Post partial/complete databases for spawns, items, etc.

Reply
 
Thread Tools Display Modes
  #1  
Old 11-11-2006, 11:48 AM
John Adams
Demi-God
 
Join Date: Jul 2006
Posts: 1,552
Default

My background is MSSQL as well, and imo, your bro should have no difficulty seeing how things currently work - but like me, freaking out that MySQL is so limited in what it can do comparitively. MySQL works for what we're doing, and it's free. Two great perks. I'm sure many a DBA have reviewed this beast in the past, yet here it stays.

My interested would be in getting it faster, rather than worrying about orphaned data or ID ranges. But you'd be amazed how well MySQL runs on a dedicated FC4 box doing nothing but service MySQL to the Emu. Time to buy more hardware.
Reply With Quote
  #2  
Old 11-11-2006, 11:58 AM
Rhodan
Hill Giant
 
Join Date: Oct 2006
Posts: 179
Default

Well, here's the first thing he came up with. It shows all the orphaned waypoints in the database.

Code:
select a.*
from grid_entries a
left outer join grid b on a.zoneid = b.zoneid and a.gridid = b.id
where
b.zoneid is null
order by
zoneid, gridid, number
I got 231 orphaned records in the ax_peq18d database.

I'll have to see what else he came up with during the day while I was at work.
Reply With Quote
  #3  
Old 11-11-2006, 01:53 PM
sesmar
I built it I will Support it!
 
Join Date: Jun 2005
Location: Michigan
Posts: 214
Default

Quote:
Originally Posted by Rhodan
I got 231 orphaned records in the ax_peq18d database.
That is not that bad. Where you really want to look is the Spawn Groups.

Code:
SELECT
  spawngroup.id,
  spawnentry.spawngroupID,
  spawnentry.npcID,
  npc_types.name
FROM
  spawnentry
  LEFT JOIN spawngroup
    ON spawngroup.id = spawnentry.spawngroupID
  LEFT JOIN npc_types
    ON npc_types.id = spawnentry.npcID
WHERE
  spawngroup.id IS NULL
ORDER BY
  npc_types.name
4187 Records. And if you also look at the number of them that have a null NPC ID as well. That is more surprising.

Some other things that I have been looking into to help increase performance is Indexing; however, the current indexing seems to be what is needed.
__________________
Reply With Quote
  #4  
Old 11-24-2006, 06:18 AM
fathernitwit
Developer
 
Join Date: Jul 2004
Posts: 773
Default

just to answer questions... we tend not to use transactions, stored proceedures, foreign keys, constraints and cascading deletes because honestly... mysql sucks at being a "grown up" database... plus most of them are rather new features anyhow.. if we desired a strong DB, we would use postgres.

mysql is fast, and what makes it fast is that it dosent support (or at least didnt used to) all of the features listed above. I do agree that external utilties is the safest way to "clean" the DB of crap which might build up over time. That said, nobody is running a server (and likely ever will) on a large enough scale to make cleaning the DB really matter.
Reply With Quote
  #5  
Old 11-28-2006, 02:17 AM
John Adams
Demi-God
 
Join Date: Jul 2006
Posts: 1,552
Default

@ Rhodan -- neener, told ya so.


Missed me? I'm baaack!
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 02:50 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3