2015-01-18 6 views
0

Привет, я пытаюсь проверить производительность отображения базы данных mySql. Мне интересно, как я могу выполнить оператор select несколько раз. На данный момент у меня есть следующий цикл:Как выполнить оператор select несколько раз в mySql?

BEGIN 
label1: LOOP 
SET p1 = p1 - 1; 
IF p1 > 0 THEN 
SELECT * FROM FOOD WHERE ID = p1; 
ITERATE label1; 
END IF; 
LEAVE label1; 
END LOOP label1; 
END 

Однако при выполнении этой хранимой процедуры в PhpMyAdmin не возвращает никаких результатов.

Update

код хранимой процедуры

CREATE DEFINER=`root`@`localhost` PROCEDURE `mySelect`(IN `p1` INT) 
    DETERMINISTIC 
BEGIN 
label1: LOOP 
SET p1 = p1 - 1; 
IF p1 > 0 THEN 
SELECT * FROM FOOD where id = p1; 
ITERATE label1; 
END IF; 
LEAVE label1; 
END LOOP label1; 
END 

Как я могу выполнить оператор выбора, как это несколько раз например 1000, чтобы узнать, сколько времени (мс) требуется для запуска?

+0

где вы установки исходного значения р1 до значения больше 0? – Lance

+0

Этот код является частью хранимой процедуры. например, вызов mySelect (100). где 100 - это количество раз, когда я хочу, чтобы оператор select sql запускал – Vil

+0

, можете ли вы поделиться своим заявлением о создании хранимой процедуры? – Lance

ответ

2

Я согласен с клубникой ... Я mysqlslap

>mysqlslap --concurrency=50 --iterations=5 --query=test1.sql --create-schema=test -uroot -p 
Benchmark 
     Average number of seconds to run all queries: 0.031 seconds 
     Minimum number of seconds to run all queries: 0.031 seconds 
     Maximum number of seconds to run all queries: 0.031 seconds 
     Number of clients running queries: 50 
     Average number of queries per client: 1 

Внутри test1.sql я писал:

SELECT * FROM food WHERE id=(1+ FLOOR(RAND() * 10)) 
+0

вот учебник: http://tosbourn.com/mysqlslap-a-quickstart-guide/ – Lance

Смежные вопросы