Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Что быстрее - int или char(1) ? / 11 сообщений из 11, страница 1 из 1
21.10.2015, 03:12:36
    #39081951
Lumix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее - int или char(1) ?
Код: sql
1.
create table t (a int, key _a (a), b char(1), key _b (b));



Кто быстрее?

Код: sql
1.
select * from t where a = 1;


vs
Код: sql
1.
select * from t where b = 'j';



Или может у них скорость одинаковая?

PS. Есть в мускуле какая-нибудь потайная операция для быстрого заполнения таблицы мусорными данными в объемах несколько десятков миллионов записей? (для целей тестирования подобных вопросов, разумеется)
...
Рейтинг: 0 / 0
21.10.2015, 09:01:40
    #39082003
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее - int или char(1) ?
1) Сравнение некорректно - INT занимает не один байт, а 4.
2) Если использовать данные сравнимого размера (4 байта) - INT будет быстрее.
...
Рейтинг: 0 / 0
21.10.2015, 10:31:51
    #39082100
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее - int или char(1) ?
Akina2) Если использовать данные сравнимого размера (4 байта) - INT будет быстрее.Если работать в рамках одной кодировки, то, имхо, разница будет на уровне погрешности измерения.
...
Рейтинг: 0 / 0
21.10.2015, 10:32:41
    #39082103
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее - int или char(1) ?
Lumix PS. Есть в мускуле какая-нибудь потайная операция для быстрого заполнения таблицы мусорными данными в объемах несколько десятков миллионов записей? (для целей тестирования подобных вопросов, разумеется)Потайной нет, но есть обычный INSERT ... SELECT ..., в котором нагенерить мусора труда не составит.
...
Рейтинг: 0 / 0
21.10.2015, 10:38:06
    #39082114
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее - int или char(1) ?
miksoftЕсли работать в рамках одной кодировки, то, имхо, разница будет на уровне погрешности измерения.Ну в общем да - операции, проводимые в памяти, слабо влияют на общую скорость выполнения. Хотя формально сравнение целых быстрее сравнение строк - вряд ли строковые сравниваются 4-байтовыми блоками.
...
Рейтинг: 0 / 0
21.10.2015, 10:41:50
    #39082120
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее - int или char(1) ?
LumixЕсть в мускуле какая-нибудь потайная операция для быстрого заполнения таблицы мусорными данными в объемах несколько десятков миллионов записей?
Нет.
Где-то у меня валялась процедура генерации, если найду - выложу.
...
Рейтинг: 0 / 0
21.10.2015, 11:21:35
    #39082168
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее - int или char(1) ?
LumixИли может у них скорость одинаковая?



Одинаковая. Если и есть разница, то в микрометрах. Всяко меньше погрешности измерений.
...
Рейтинг: 0 / 0
21.10.2015, 15:22:48
    #39082523
Lumix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее - int или char(1) ?
MasterZiv, thanks!
...
Рейтинг: 0 / 0
21.10.2015, 18:30:00
    #39082786
alexnews
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее - int или char(1) ?
Код: plsql
1.
2.
3.
CREATE TABLE rand_numbers (
    number INT NOT NULL
) ENGINE = MYISAM;




Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
DELIMITER $$
CREATE PROCEDURE InsertRand(IN NumRows INT, IN MinVal INT, IN MaxVal INT)
    BEGIN
        DECLARE i INT;
        SET i = 1;
        START TRANSACTION;
        WHILE i <= NumRows DO
            INSERT INTO rand_numbers VALUES (MinVal + CEIL(RAND() * (MaxVal - MinVal)));
            SET i = i + 1;
        END WHILE;
        COMMIT;
    END$$
DELIMITER ;



Код: plsql
1.
CALL InsertRand(1111, 2222, 5555);
...
Рейтинг: 0 / 0
21.10.2015, 19:45:45
    #39082836
Lumix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее - int или char(1) ?
alexnews, благодарствую.
Не сочтите за паразитизм, но существует ли теоретическая возможность написать универсальную процедуру, чтобы вызывать её вот так и она сама проанализирует структуру таблицы и заполнит её мусором?

Код: sql
1.
2.
3.
create t (a int, b text, ....);
call mockUp(t, 18000000);
select count(*) t; /** == 18000000 */
...
Рейтинг: 0 / 0
21.10.2015, 20:51:36
    #39082861
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее - int или char(1) ?
Lumixalexnews, благодарствую.
Не сочтите за паразитизм, но существует ли теоретическая возможность написать универсальную процедуру, чтобы вызывать её вот так и она сама проанализирует структуру таблицы и заполнит её мусором?

Код: sql
1.
2.
3.
create t (a int, b text, ....);
call mockUp(t, 18000000);
select count(*) t; /** == 18000000 */




Информационная схама содержит информацию об
всех колнках таблицы с типоми, размерами итд...
Типов -- конечное число, поетому будет нетрудно создать
то что вы хотите.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Что быстрее - int или char(1) ? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]