What is the 'idx' for when you already have an 'id' column? Also, you
need an index on the column that you are joining on; having a single
indexed column on a table doesn't automatically improve all queries
against that table. Put an index on the 'email_address' fields of both
tables. You'll need:
ALTER TABLE la_entire
ADD INDEX idx_email_address (email_address);
ALTER TABLE la_final
ADD INDEX idx_email_address (email_address);
See:
http://dev.mysql.com/doc/mysql/en/ALTER_TABLE.html
On Tue, 2004-07-20 at 09:22, Edward Ritter wrote:
> Stefan:
> I added an index column to each after I imported. Here's a listing of
> the two tables.
>
> la_entire
> +----------------+-------------+------+-----+---------+----------------+
> | Field | Type | Null | Key | Default | Extra |
> +----------------+-------------+------+-----+---------+----------------+
> | id1 | int(3) | | | 0 | |
> | id2 | varchar(6) | | | | |
> | first_name | varchar(30) | | | | |
> | last_name | varchar(30) | | | | |
> | street_address | varchar(50) | | | | |
> | city | varchar(30) | | | | |
> | state | char(2) | | | | |
> | zip | varchar(9) | | | | |
> | email_address | varchar(50) | | | | |
> | idx | int(7) | | PRI | NULL | auto_increment |
> +----------------+-------------+------+-----+---------+----------------+
> 10 rows in set (0.00 sec)
>
> +----------------+-------------+------+-----+---------+----------------+
> | Field | Type | Null | Key | Default | Extra |
> +----------------+-------------+------+-----+---------+----------------+
> | id | int(5) | | | 0 | |
> | county | int(5) | | | 0 | |
> | precinct | int(5) | | | 0 | |
> | last_name | varchar(30) | | | | |
> | first_name | varchar(30) | | | | |
> | src_address | varchar(30) | | | | |
> | src_city | varchar(30) | | | | |
> | src_state | varchar(20) | | | | |
> | src_zip | int(5) | | | 0 | |
> | email_address | varchar(30) | | | | |
> | new_city | varchar(30) | | | | |
> | new_state | varchar(20) | | | | |
> | new_zip | int(5) | | | 0 | |
> | new_zip4 | int(4) | | | 0 | |
> | new_address | varchar(30) | | | | |
> | dma_flag | varchar(4) | | | | |
> | deceased | varchar(4) | | | | |
> | phone | int(12) | | | 0 | |
> | time_zone | varchar(4) | | | | |
> | phone_sol | varchar(4) | | | | |
> | cluster | varchar(4) | | | | |
> | age | varchar(4) | | | | |
> | income | varchar(4) | | | | |
> | pres_child | varchar(4) | | | | |
> | own_rent | varchar(4) | | | | |
> | length_of_res | varchar(4) | | | | |
> | buyer | varchar(4) | | | | |
> | responder | varchar(4) | | | | |
> | gender | varchar(4) | | | | |
> | occupation | varchar(4) | | | | |
> | education | varchar(4) | | | | |
> | donor_prospect | varchar(4) | | | | |
> | scr1ast1 | varchar(4) | | | | |
> | scr1bst1 | varchar(4) | | | | |
> | scr2ast1 | varchar(4) | | | | |
> | scr2bst1 | varchar(4) | | | | |
> | decile1 | varchar(4) | | | | |
> | decile2 | varchar(4) | | | | |
> | decile3 | varchar(4) | | | | |
> | decile4 | varchar(4) | | | | |
> | scr1ast2 | varchar(4) | | | | |
> | scr1bst2 | varchar(4) | | | | |
> | decile5 | varchar(4) | | | | |
> | decile6 | varchar(4) | | | | |
> | dob | varchar(12) | | | | |
> | party | varchar(4) | | | | |
> | idx | int(7) | | PRI | NULL | auto_increment |
> +----------------+-------------+------+-----+---------+----------------+
> 47 rows in set (0.00 sec)
>
>
> My latest attempt at a query is this:
>
> select la_entire.* from la_entire left join la_final on
> la_entire.email_address = la_final.email_address where
> la_final.email_address is null;
>
> Any help?
>
> Ed
>
> Stefan Kuhn said the following on 7/20/2004 12:05 PM:
> > I would expect that the speed problems are due to missing indices. Did you do
> > proper indexing? If unsure, post your table structures and query.
> > Stefan
> >
> > Am Tuesday 20 July 2004 17:45 schrieb Edward Ritter:
> >
> >>I've got a task that's gonna require me to compare one table to another
> >>and remove the rows from the first table that are found in the second
> >>table that match email_address.
> >>
> >>I'm running 4.0.20a-nt-log. The first table has 10 colomns and about 50K
> >>records, and the second table has 46 columns and has about 16K records.
> >>
> >>I've attempted a number of selects that just sat and hung the computer.
> >>I know I must be doing something wrong. I figure I'll need to do a left
> >>join on it, but I've not had much experience with joins as such and I
> >>need a little assistance.
> >>
> >>Can anyone help me work this out? If you need more info, let me know.
> >>
> >>Ed
> >
> >
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]