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