TCLUG Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [TCLUG:19152] LOAD DATA INFILE
On Sat, 24 Jun 2000, George M Swan III wrote:
> In other words a relational database optimizing performance by splitting
> data into several tables to minimize storage space and other things.
> Right??? Or is there something that keeps these two concepts separate:
> 1) normalized and 2) relational ???
Actually, normalized databases are _slower_ than unnormalized
database. Not sure about the storage space, but it's possiblely smaller
(since you use an INT to refer to the ingredient instead of TEXT).
A database is relational *because* it is normalized -- the "relation"
refers to the references between the tables.
> ... also I took note of the use of the term PRIMARY KEY, which would imply
> indexing of the table upon which it was applied. Which in turn would make
> the action of LOAD DATA INFILE take much longer according to De Bois and
> that it's a balancing act to decide which would take less time, 1)
> muscling through without removing the indexing or 2) removing or desabling
> the indexing. And thus the importance of chewies' admonition, "[We should
> first ask if the database is normalized or not.]"
The use of primary key is basically necessary -- it allows you to refer to
each element in the table uniquely. Thus you can say:
SELECT * FROM recipies WHERE recipie_id="$foo"; or somesuch thing.
Basically, you want indexes (via PRIMARY KEY, UNIQUE, and/or INDEX) on any
column which you use in the WHERE part of a SELECT statement. It makes
your queries faster at the expense of somewhat slower inserts. But for any
table I've created, the selects are more important/more used than the
inserts.
Have fun.
Luke