lists.zerezo.com
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
***BOGO*** Re: optimize
- Date: Wed, 28 May 2008 15:02:59 +0530
- From: "Ananda Kumar" <anandkl@xxxxxxxxx>
- Subject: ***BOGO*** Re: optimize
Krishna,
Since the number matching rows for the giving where CONDITION is accouting
to this many rows, the query is reading that much data.
please try this
select count(*) from user_info ui,user_authentication_date
uad where ui.user_id!=uad.user_id;
The above query will tell u how many records will be read for THE WHERE
CONDITION UR TRYING.
regards
anandkl
On 5/28/08, Krishna Chandra Prajapati <prajapatikc@xxxxxxxxx> wrote:
>
> I would like to know why it is scanning 255629,267072 rows, Since user_id
> in
> both the table is a primary key (indexed). Please tell me how can i
> optimize
> this.
>
>
> On Wed, May 28, 2008 at 12:59 PM, Alex Arul Lurthu <alex.lurthu@xxxxxxxxx>
> wrote:
>
> > Can you please elaborate on what exactly are you trying to achieve by the
> > below mentioned query :
> >
> > mysql> explain select ui.user_id from user_info
> ui,user_authentication_date
> > uad where ui.user_id!=uad.user_id;
> >
> > I have a strange feeling that the join condition is not right.
> >
> >
> > On Wed, May 28, 2008 at 12:51 PM, Krishna Chandra Prajapati <
> > prajapatikc@xxxxxxxxx> wrote:
> >
> >> Hi,
> >>
> >> CREATE TABLE `user_info` (
> >> `user_id` decimal(22,0) NOT NULL default '0',
> >> `drivers_license` varchar(24) NOT NULL default '',
> >> `login_date` datetime NOT NULL default '0000-00-00 00:00:00',
> >> `course_id` decimal(22,0) NOT NULL default '0',
> >> `regulator_id` decimal(22,0) NOT NULL default '0',
> >> `test_info` varchar(16) default NULL,
> >> `completion_date` datetime default NULL,
> >> `print_date` datetime default NULL,
> >> `password` varchar(32) default NULL,
> >> `certificate_number` varchar(16) default NULL,
> >> PRIMARY KEY (`user_id`),
> >> KEY `idx_certificate_number` (`certificate_number`),
> >> KEY `idx_completion_date` (`completion_date`),
> >> KEY `idx_print_date` (`print_date`),
> >> KEY `idx_user_info` (`drivers_license`),
> >> KEY `idx_user_info_2` (`course_id`)
> >> ) ENGINE=InnoDB DEFAULT CHARSET=latin1
> >>
> >> CREATE TABLE `user_authentication_date` (
> >> `user_id` decimal(22,0) NOT NULL default '0',
> >> `authentication_date` datetime NOT NULL default '0000-00-00 00:00:00',
> >> PRIMARY KEY (`user_id`),
> >> KEY `user_authentication_comp1` (`user_id`,`authentication_date`),
> >> CONSTRAINT `fk_user_authentication_date` FOREIGN KEY (`user_id`)
> >> REFERENCES `user_info` (`user_id`) ON DELETE NO ACTION ON UPDATE NO
> ACTION
> >> ) ENGINE=InnoDB DEFAULT CHARSET=latin1
> >>
> >> mysql> explain select ui.user_id from user_info
> >> ui,user_authentication_date
> >> uad where ui.user_id=uad.user_id;
> >>
> >>
> +----+-------------+-------+--------+-----------------------------------+---------+---------+-----------------+--------+-------------+
> >> | id | select_type | table | type | possible_keys
> |
> >> key | key_len | ref | rows | Extra |
> >>
> >>
> +----+-------------+-------+--------+-----------------------------------+---------+---------+-----------------+--------+-------------+
> >> | 1 | SIMPLE | uad | index | PRIMARY,user_authentication_comp1
> |
> >> PRIMARY | 10 | NULL | 255629 | Using index |
> >> | 1 | SIMPLE | ui | eq_ref | PRIMARY
> |
> >> PRIMARY | 10 | dip.uad.user_id | 1 | Using index |
> >>
> >>
> +----+-------------+-------+--------+-----------------------------------+---------+---------+-----------------+--------+-------------+
> >>
> >> Why it is scanning 255629 rows, Since user_id in both the table is a
> >> primary
> >> key (indexed). Please tell me how can i optimize this.
> >>
> >> mysql> explain select ui.user_id from user_info
> >> ui,user_authentication_date
> >> uad where ui.user_id!=uad.user_id;
> >>
> >>
> +----+-------------+-------+-------+---------------+---------------------+---------+------+--------+--------------------------+
> >> | id | select_type | table | type | possible_keys | key
> |
> >> key_len | ref | rows | Extra |
> >>
> >>
> +----+-------------+-------+-------+---------------+---------------------+---------+------+--------+--------------------------+
> >> | 1 | SIMPLE | uad | index | NULL | PRIMARY
> |
> >> 10 | NULL | 255629 | Using index |
> >> | 1 | SIMPLE | ui | index | NULL | idx_completion_date
> |
> >> 9 | NULL | 267072 | Using where; Using index |
> >>
> >>
> +----+-------------+-------+-------+---------------+---------------------+---------+------+--------+--------------------------+
> >>
> >> --
> >> Krishna Chandra Prajapati
> >> MySQL DBA,
> >>
> >
> >
> >
> > --
> > Thanks
> > Alex
> > http://alexlurthu.wordpress.com
>
>
>
>
> --
> Krishna Chandra Prajapati
> MySQL DBA,
> Ed Ventures e-Learning Pvt.Ltd.
> 1-8-303/48/15, Sindhi Colony
> P.G.Road, Secunderabad.
> Pin Code: 500003
> Office Number: 040-66489771
> Mob: 9912924044
> URL: ed-ventures-online.com
> Email-id: prajapatikc@xxxxxxxxx
>