2009-12-16 3 views
0

У меня есть база данных в mysql с 1 таблицей, состоящей из 5 полей. Два из этих полей FLOAT и сгенерированы функцией RAND; теперь я хочу изменить эти значения каждый х раз, например, числовые значения должны меняться каждые 0,01 с для имитации финансового рынка. Есть ли способ сделать это? Спасибоmysql random value change

+0

Как случайное число каждые 0,01 секунды имитации финансового рынка? Вы получите сумасшедшие колебания. Конечно, если это просто проверить нагрузку на базу данных, я получаю ее. –

+0

Я хочу установить 0.01 с только для проверки процессора и использования пэра моего компьютера; то я поверну таймер на 3 или 4 с ... – Franky

ответ

0

Зачем вам изменять эти значения непосредственно в таблице? Это будет огромная нагрузка на базу данных, чтобы обновлять ее каждые 0,01 секунды. Может быть, вы можете сделать это на стороне сервера или, может быть, на событии с Javascript?

+0

Меня интересует решение на стороне сервера, потому что я создал клиента в Flex, который должен поговорить с удаленным сервером, который должен изменить числовые значения. Можете ли вы объяснить мне, как это сделать? Спасибо – Franky

0

Поскольку это звучит, как вы только тестирование, вы можете сделать это в сценарий оболочки. Что-то вроде этого:

while [ true ] do 
    mysql -sse "update test.rand_table set rand_column = rand();" 
    sleep 0.01 
done 

Хранимая процедура, вероятно, будет более эффективным, поскольку он может повторно использовать то же самое соединение:

DELIMITER $$ 

DROP PROCEDURE IF EXISTS test.UPDATE_RANDOM_TABLE $$ 

CREATE PROCEDURE test.UPDATE_RANDOM_TABLE() 
BEGIN 
    WHILE TRUE 
    DO 
    update test.rand_Table set rand_column = rand(); 
    select sleep(0.01); 
    END WHILE; 
END $$ 

DELIMITER ;