Krzysztof
Białkowski
Software Developer
(C# .NET)
Temat: [Mysql] NAME_CONST
Witam!Pytanie z cyklu dziwnych..
Otoz mamy taka tabelke:
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| nazwa | varchar(12) | YES | | NULL | |
| cos | varchar(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
mysql> select * from names;
+------+----------+----------+
| id | nazwa | cos |
+------+----------+----------+
| 1 | sasasdas | daasdr |
| 2 | dadas | eeewqe |
| 3 | zxzzxqas | pdasdpas |
+------+----------+----------+
czyli jakieś id i dwa pola tekstowe
następnie mamy funkcyjke ktora wybiera (w pętli aby wychwycic proces), jakiś tam jeden rekord:
DELIMITER //
DROP FUNCTION IF EXISTS test_name//
CREATE FUNCTION test_name(item VARCHAR(12))
RETURNS VARCHAR(100)
BEGIN
DECLARE max int;
DECLARE _item varchar(12);
set max=1;
WHILE max <1000001 DO
select cos into _item from names where nazwa=item;
SET max=max+1;
END WHILE;
return _item;
END//
delimiter ;
I teraz pytanko:
Czemu w procesach (show process list) wywietla mi się zapytanie jako:
select cos into _item from s3_pomiary.names where nazwa= NAME_CONST('item',_latin2'sasasdas')
Chodzi głownie o to,że po przejsciu na nowego mysql 5.0.51a-24+lenny1-log (Debian), funckja zaczeła sie wykonywac jakies x5 razy dłuzej (na wczesniejszej wersji nie było tego NAME_CONST)
Czy ktoś jest może w to wytłumaczyc : )
Z dodatkowych informacji to moze jeszcze locale utf8, baza na latin2.Krzysztof Białkowski edytował(a) ten post dnia 23.07.09 o godzinie 23:55