Ivan,

----- Original Message ----- 
From: ""Ivan Latysh"" <[EMAIL PROTECTED]>
Newsgroups: mailing.database.myodbc
Sent: Thursday, June 17, 2004 7:44 PM
Subject: Dying query ....


> Hello!
>
> I am running:
> Server version          4.1.2-alpha-max-log
> On linux RedHat.
>
> When I execute a simple select, it's dying, with no error message
> reported or so, the query is simply dying together with the server.
> After query is died entire server is hang on. I can't even shut it down.
> Query shows as *** DEAD *** in mysql processlist.
>
> Here is a query:
> select contest_id, question_id, answer_id, answer,
> count(distinct(answer_id)) as count from user_answer
> group by question_id, answer_id, answer
> order by question_id, answer_id
>
> The table is:
> CREATE TABLE `user_answer` (
>   `user_id` int(11) NOT NULL default '0',
>   `contest_id` int(11) NOT NULL default '0',
>   `question_id` int(11) NOT NULL default '0',
>   `answer_id` int(11) NOT NULL default '0',
>   `answer` char(255) NOT NULL default '',
>   `date` datetime NOT NULL default '0000-00-00 00:00:00',
>   KEY `user_id` (`user_id`),
>   KEY `contest_id` (`contest_id`),
>   KEY `question_id` (`question_id`),
>   KEY `answer_id` (`answer_id`),
>   KEY `date` (`date`),
>   CONSTRAINT `0_3488` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`),
>   CONSTRAINT `0_3489` FOREIGN KEY (`contest_id`) REFERENCES `contest`
> (`id`),
>   CONSTRAINT `0_3490` FOREIGN KEY (`question_id`) REFERENCES `question`
> (`id`),
>   CONSTRAINT `0_3491` FOREIGN KEY (`answer_id`) REFERENCES `answer` (`id`)
> ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
> A real table has 52000 records.
>
> I tested it on a 4.0.1 version - the result is same.
>
> Any idead what is wrong with it ?

please run CHECK TABLE on that table. Does it report corruption or does
mysqld print anything to the .err log?

I tested your query with a small data set on 4.1.3, and it ran fine.

> --
> With best regards,
> Ivan Latysh.

Best regards,

Heikki Tuuri
Innobase Oy
Foreign keys, transactions, and row level locking for MySQL
InnoDB Hot Backup - a hot backup tool for InnoDB which also backs up MyISAM
tables
http://www.innodb.com/order.php

Order MySQL technical support from https://order.mysql.com/


[EMAIL PROTECTED]:~/mysql-4.1/client> ./mysql test
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.1.3-beta-debug-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create table user(id int not null primary key) type=innodb;
Query OK, 0 rows affected, 1 warning (0.16 sec)

mysql> create table contest(id int not null primary key) type=innodb;
Query OK, 0 rows affected, 1 warning (0.03 sec)

mysql> create table question(id int not null primary key) type=innodb;
Query OK, 0 rows affected, 1 warning (0.02 sec)

mysql> create table answer(id int not null primary key) type=innodb;
Query OK, 0 rows affected, 1 warning (0.02 sec)

mysql> insert into user values (10);
Query OK, 1 row affected (0.02 sec)

mysql> insert into contest values (10);
Query OK, 1 row affected (0.00 sec)

mysql> insert into question values (10);
Query OK, 1 row affected (0.00 sec)

mysql> insert into answer values (10);
Query OK, 1 row affected (0.00 sec)

mysql>
mysql>
mysql>
mysql>
mysql> CREATE TABLE `user_answer` (
    ->   `user_id` int(11) NOT NULL default '0',
    ->   `contest_id` int(11) NOT NULL default '0',
    ->   `question_id` int(11) NOT NULL default '0',
    ->   `answer_id` int(11) NOT NULL default '0',
    ->   `answer` char(255) NOT NULL default '',
    ->   `date` datetime NOT NULL default '0000-00-00 00:00:00',
    ->   KEY `user_id` (`user_id`),
    ->   KEY `contest_id` (`contest_id`),
    ->   KEY `question_id` (`question_id`),
    ->   KEY `answer_id` (`answer_id`),
    ->   KEY `date` (`date`),
    ->   CONSTRAINT `0_3488` FOREIGN KEY (`user_id`) REFERENCES `user`
(`id`),
    ->   CONSTRAINT `0_3489` FOREIGN KEY (`contest_id`) REFERENCES `contest`
    -> (`id`),
    ->   CONSTRAINT `0_3490` FOREIGN KEY (`question_id`) REFERENCES
`question`
    -> (`id`),
    ->   CONSTRAINT `0_3491` FOREIGN KEY (`answer_id`) REFERENCES `answer`
(`id`
)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Query OK, 0 rows affected (0.11 sec)

mysql> insert into user_answer values (1, 1, 1, 1, 'kukkuuu', '2004-06-18');
ERROR 1216 (23000): Cannot add or update a child row: a foreign key
constraint f
ails
mysql> insert into user_answer values (10, 10, 10, 10, 'kukkuuu',
'2004-06-18');

Query OK, 1 row affected (0.00 sec)

mysql> insert into user_answer values (10, 10, 10, 10, 'kukkuuu',
'2004-06-18');
Query OK, 1 row affected (0.00 sec)

mysql> insert into user_answer values (10, 10, 10, 10, 'kukkuuu',
'2004-06-18');
Query OK, 1 row affected (0.00 sec)

mysql> insert into user_answer values (10, 10, 10, 10, 'kukkuuu',
'2004-06-18');
Query OK, 1 row affected (0.00 sec)

mysql> insert into user_answer values (10, 10, 10, 10, 'kukkuuu',
'2004-06-18');
Query OK, 1 row affected (0.00 sec)

mysql> insert into user_answer values (10, 10, 10, 10, 'kukkuuu',
'2004-06-18');
Query OK, 1 row affected (0.00 sec)

mysql> insert into user_answer values (10, 10, 10, 10, 'kukkuuu',
'2004-06-18');
Query OK, 1 row affected (0.00 sec)

mysql> insert into user_answer values (10, 10, 10, 10, 'kukkuuu',
'2004-06-18');
Query OK, 1 row affected (0.00 sec)

mysql> insert into user_answer values (10, 10, 10, 10, 'kukkuuu',
'2004-06-18');
Query OK, 1 row affected (0.00 sec)

mysql> insert into user_answer values (10, 10, 10, 10, 'kukkuuu',
'2004-06-18');
Query OK, 1 row affected (0.00 sec)

mysql> select contest_id, question_id, answer_id, answer,
    -> count(distinct(answer_id)) as count from user_answer
    -> group by question_id, answer_id, answer
    -> order by question_id, answer_id
    -> ;
+------------+-------------+-----------+---------+-------+
| contest_id | question_id | answer_id | answer  | count |
+------------+-------------+-----------+---------+-------+
|         10 |          10 |        10 | kukkuuu |     1 |
+------------+-------------+-----------+---------+-------+
1 row in set (0.05 sec)

mysql> insert into user values (20);
Query OK, 1 row affected (0.00 sec)

mysql> insert into user_answer values (20, 10, 10, 10, 'kukkuuuluuruu',
'2004-06
-18');
Query OK, 1 row affected (0.00 sec)

mysql> insert into user_answer values (20, 10, 10, 10, 'kukkuuuluuruu',
'2004-06
-18');
Query OK, 1 row affected (0.00 sec)

mysql> insert into user_answer values (20, 10, 10, 10, 'kukkuuuluuruu',
'2004-06
-18');
Query OK, 1 row affected (0.00 sec)

mysql> insert into user_answer values (20, 10, 10, 10, 'kukkuuuluuruu',
'2004-06
-18');
Query OK, 1 row affected (0.00 sec)

mysql> insert into user_answer values (20, 10, 10, 10, 'kukkuuuluuruu',
'2004-06
-18');
Query OK, 1 row affected (0.00 sec)

mysql>
mysql>
mysql>
mysql> select contest_id, question_id, answer_id, answer,
    -> count(distinct(answer_id)) as count from user_answer
    -> group by question_id, answer_id, answer
    -> order by question_id, answer_id
    -> ;
+------------+-------------+-----------+---------------+-------+
| contest_id | question_id | answer_id | answer        | count |
+------------+-------------+-----------+---------------+-------+
|         10 |          10 |        10 | kukkuuu       |     1 |
|         10 |          10 |        10 | kukkuuuluuruu |     1 |
+------------+-------------+-----------+---------------+-------+
2 rows in set (0.00 sec)

mysql>



-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to