Вверх ↑
Ответов: 655
Рейтинг: 18
#1: 2014-06-28 00:13:25 ЛС | профиль | цитата
Tad, если не сложно не подскажите по паре моментов?

Я сделал тестовую таблицу:
create table test (id interger primary key autoincriment, data1 text, time real);
создал индекс для столбца data.
create index dt on test (data);

загнал в таблицу 1 000 000 строк.

если я делаю например select * from test where data='123'; то бд быстро выдает результат.
а если делаю select count(*) from test; - есть задержка в пару секунд.

В связи с чем есть пару вопросов:

1) Как ускорить select count(*) from test;?
Если вместо select count(*) from test; использовать select max(id) from test (который в разы быстрее в моем случае) как тогда быть если я удалю какую либо строку из таблицы? индекс -то не удалится..

2) Зачем нужен primary key если можно использовать index unique? (описание primary key на wiki для начинающего оч сложное)

3) Индексировать нужно всю таблицу или же только столбцы по которым будет производиться выборка?
карма: 0

0