Post #19,957
12/2/01 12:36:13 PM
|
Wierd create index behaviour
It seemed to have copied the entire table (all files) into another set of files. Now it is doing read-intensive work.
Why? Snapshotting to ensure consistency? Must be bypassable!
|
Post #19,996
12/2/01 8:04:05 PM
|
index create
needs to create a tmp table then slices and dices until complete, then writes the index to disk? maybe? Is informix/sybase more price compat than oracle? informix is faster than oracle last time I checked. thanx, bill
tshirt front "born to die before I get old" thshirt back "fscked another one didnja?"
|
Post #20,002
12/2/01 9:09:04 PM
|
Re: index create
> needs to create a tmp table then slices and dices until complete, then writes > the index to disk? maybe?
It seemed that it created an EXACT copy of the data files that it was supposed to index. It created them in the same dirs that the originals were in. It then ran out of tmp space in /tmp and the index failed. It then deleted all the copy files. Ya know, If I really cared, I could read the source. I don't care that much. Actually, I might, now that I think about it.
I've set the /tmp to be in the large partition, and I've pumped up all the various memory related parameters, I've got 1GB in this box.
> Is informix/sybase more price compat than oracle? informix is faster than > oracle last time I
Nah, Informix of a certain class is faster, and it costs more. I had the Informix people pitching me last month. And the lesser Informix is REAL slow.
Sybase is seen as a corpse that hasn't figured it out yet. I wouldn't get a dime for trying.
No commercial alternatives allowed. If I can't figure it out via MySQL or PostGreSQL, it'll be Oracle.
But I really think that a dual CPU Linux box with MySQL will be plenty fast enough, once I've set it up right. I'm loading the data for the 4th time, after blowing it away trying varous alternatives.
Since it loads in 1/2 hour, it is worth testing variations.
Does anyone know of a Solaris like iostat for Linux. The one in the mpstat package is nasty. I want to see MB/s and Service time, but this one makes me think in blocks or sectors. Of course, I COULD hack it.
|
Post #20,005
12/2/01 9:39:52 PM
|
Well, Sybase still has some money
since they're building a big new building on Hacienda Road in Dublin (just north of I-580, and just south of one of our customers -- and the Santa Rita jail!).
Then again, maybe it's really a plan to save money: rent might be cheaper in Dublin than Emeryville, and they might be moving everybody there.
BTW, commercial rents in this area are still around $2/sq ft/month -- and the sublease signs have been going up (e.g. on one Lam Research bldg).
Good luck with project.
Tony
|
Post #20,011
12/2/01 10:27:47 PM
|
Re: index create
OK, here's the reason. MySQL originally created indexes via 'alter table add index name (field1,field2,...) syntax. "create index ..." is a synonym. And ALL alter tables do the following: -----------------------------------------------------------
ALTER TABLE works by making a temporary copy of the original table. The alteration is performed on the copy, then the original table is deleted and the new one is renamed. This is done in such a way that all updates are automatically redirected to the new table without any failed updates. While ALTER TABLE is executing, the original table is readable by other clients. Updates and writes to the table are stalled until the new table is ready.
Note that if you use any other option to ALTER TABLE than RENAME, MySQL will always create a temporary table, even if the data wouldn't strictly need to be copied (like when you change the name of a column). We plan to fix this in the future, but as one doesn't normally do ALTER TABLE that often this isn't that high on our TODO. ---------------------------------------------------------------------------
Yack shit. This piss poor design might be reason enough not use it. On the other hand, if I can create all indexes on one pass, it might be worth it.
|
Post #20,015
12/2/01 10:53:57 PM
|
1.5 hours to create index
On almost unique id. As opposed to 13 minutes on Sun/Oracle.
Now I'm trying to create 7 indexes simultaneously.
I suspect I will find there is 1.25 hours overhead, and then each index will be 15 minutes. If that is true, and the query times are OK, we have a winner.
Actually, if EACH one takes 1.5 hours, and it runs overnight once a month, and it saves $80,000, we still have a winner.
|
Post #20,101
12/3/01 3:28:05 PM
|
That's why I'd second the Interbase recommendation
I don't think you need to split your research time any further. IMO your free options should be Postgres vs Interbase. MySQL has too many issues like this; cf. wharris' mention of accuracy (below) and the locking issues (although your description of essentially read-only ameliorates that one somewhat). But these are symptomatic of the many design trade-offs that were made all in the name of speed and small footprint. Comparing Oracle and MySQL is, IMO, an apples-and-oranges comparison. IB, on the other hand, is much closer to Oracle functionality and design.
--------------------------------- A stupid despot may constrain his slaves with iron chains; but a true politician binds them even more strongly by the chain of their own ideas;...despair and time eat away the bonds of iron and steel, but they are powerless against the habitual union of ideas, they can only tighten it still more; and on the soft fibres of the brain is founded the unshakable base of the soundest of Empires."
Jacques Servan, 1767
|