|
|
|
| Народ, проччитав литературы, по даной теме, получаеться индексы, просто на просто создают клон столбца только в упорядоченом порядке, ну с числами понятно, а что тогда со строковыми индексами??? | |
|
|
|
|
|
|
|
для: Богданн
(09.07.2011 в 16:15)
| | а что с ними не так? Вам знакомо словосочетание алфавитный порядок? вот грубо говоря так | |
|
|
|
|
|
|
|
для: Богданн
(09.07.2011 в 16:15)
| | Грубо говоря да, но на самом деле они устроены немного сложнее, особенно, если речь заходит об InnoDB, где индексы хранятся совместно с данными и привязаны к первичному ключу. Со строками обычно никаких проблем не бывает, так как фактически каждому символу строки сопоставлено число, нужно только последовательно сравнивать числа до тех пор пока не будет найдено несоответствие (сравнение разумеется с учетом кодировки, т.е. нужны правила какие коды чисел больше, а какие меньше). | |
|
|
|
|
|
|
|
для: cheops
(09.07.2011 в 16:22)
| | а можно как-то на примере простой базы проследить скорость обработки индескированого столбца и неиндексированого??есть такие? | |
|
|
|
|
|
|
|
для: Богданн
(09.07.2011 в 16:25)
| | Ну, да можно. Если вы пользуетесь консольным mysql, то видите, что он выводит время выполнения каждой записи. Только таблица должна быть довольно объемная (несколько мегабайт, а лучше десятков мегабайт), так как маленькие таблицы MySQL и без ключей очень быстро обрабатывает. | |
|
|
|
|
|
|
|
для: cheops
(09.07.2011 в 16:29)
| | а, как можно заполнить данными базу для експеримента через пхп? | |
|
|
|
|
|
|
|
для: Богданн
(09.07.2011 в 16:32)
| | да тут проблема, что информация для эксперемента мне кажется должна быть хоть маленько осмыслена
можно конечно сделать два цикла внешний на 50000 итераций и внутренний на 10000 в котором собирается запрос на многострочный INSERT и желательно чтобы данные повторялись, можно поиграть потом с группировками и тд
___
у Вас складывается впечатление, что мы "гады немцы" Вас обманываем?))
зачем проверять, то что уже давно проверено?
есть три вида индексов нужные, бесполезные и вредные | |
|
|
|
|
|
|
|
для: Богданн
(09.07.2011 в 16:32)
| | Можно и через MySQL, например, создав объединение из нескольких таблиц. Пусть будет таблица из одного столбца из 10 строк
CREATE TABLE ten (
s text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
INSERT INTO ten VALUES('q');
INSERT INTO ten VALUES('w');
INSERT INTO ten VALUES('e');
INSERT INTO ten VALUES('r');
INSERT INTO ten VALUES('y');
INSERT INTO ten VALUES('y');
INSERT INTO ten VALUES('p');
INSERT INTO ten VALUES('f');
INSERT INTO ten VALUES('s');
INSERT INTO ten VALUES('t');
| тогда заполнить такую же таблицу huge 10 000 записями можно при помощи запроса
INSERT INTO huge
SELECT
CONCAT(a.s, b.s, c.s, d.s)
FROM
ten AS a,
ten AS b,
ten AS c,
ten AS d
ORDER BY RAND()
| каждая новая таблица в FROM увеличивает количество записей в тестовой таблице huge в 10 раз. Понятно, что у вас получается не совсем то, что в реальности и такие тестовые таблицы имеют много подводных камней, даже если вместо букв идут слова из словаря (если вы тестируете сложный движок), но для учебных целей её обычно более чем достаточно. | |
|
|
|
|
|
|
|
для: cheops
(09.07.2011 в 16:54)
| | у меня возникла другая идея
берем обычный текст (благо литературы много в инете)
избавляемся от знаков препинания
эксплодим по пробелам и загоняем в базу :)
пару тройку книг на 1000 страниц я думаю хватит :) | |
|
|
|
|
|
|
|
для: Valick
(09.07.2011 в 16:59)
| | спасибо, буим пробовать | |
|
|
|
|
|
|
|
для: Богданн
(09.07.2011 в 17:03)
| | запрос с группировкой по полю варчар, с подсчетом количества сгруппированных строк (тотал) и ордером по убыванию (тотал) в базе со 156 тыс строк
0.423296928406 с индексом
1.28597378731 без индекса | |
|
|
|
|
|
|
|
для: Valick
(09.07.2011 в 16:59)
| | Обычно грабят похожий ресурс с реальными сообщениями, так как у сообщений может быть разный размер - это тоже много на что влияет. Тестовые базы данных из словаря все-равно слишком регулярные получаются. Вообще ничего нет лучше реальной базы данных :), но её можно получить только в результате реальной эксплуатации. | |
|
|
|
|
|
|
|
для: cheops
(09.07.2011 в 16:54)
| | спасибо, то что нужно. | |
|
|
|
|
|
|
|
для: Богданн
(09.07.2011 в 16:25)
| | у Вас два варианта - либо поверить наслово, либо набить базу и самому убедиться в том что с индексами селект гораздо быстрее)) | |
|
|
|