Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: индексы в mysql

Сообщения:  [1-10]   [11-14] 

 
 автор: Valick   (09.07.2011 в 19:04)   письмо автору
 
   для: Богданн   (09.07.2011 в 17:03)
 

запрос с группировкой по полю варчар, с подсчетом количества сгруппированных строк (тотал) и ордером по убыванию (тотал) в базе со 156 тыс строк
0.423296928406 с индексом
1.28597378731 без индекса

  Ответить  
 
 автор: cheops   (09.07.2011 в 17:04)   письмо автору
 
   для: Valick   (09.07.2011 в 16:59)
 

Обычно грабят похожий ресурс с реальными сообщениями, так как у сообщений может быть разный размер - это тоже много на что влияет. Тестовые базы данных из словаря все-равно слишком регулярные получаются. Вообще ничего нет лучше реальной базы данных :), но её можно получить только в результате реальной эксплуатации.

  Ответить  
 
 автор: Богданн   (09.07.2011 в 17:03)   письмо автору
 
   для: Valick   (09.07.2011 в 16:59)
 

спасибо, буим пробовать

  Ответить  
 
 автор: Богданн   (09.07.2011 в 17:02)   письмо автору
 
   для: cheops   (09.07.2011 в 16:54)
 

спасибо, то что нужно.

  Ответить  
 
 автор: Valick   (09.07.2011 в 16:59)   письмо автору
 
   для: cheops   (09.07.2011 в 16:54)
 

у меня возникла другая идея
берем обычный текст (благо литературы много в инете)
избавляемся от знаков препинания
эксплодим по пробелам и загоняем в базу :)
пару тройку книг на 1000 страниц я думаю хватит :)

  Ответить  
 
 автор: cheops   (09.07.2011 в 16:54)   письмо автору
 
   для: Богданн   (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 раз. Понятно, что у вас получается не совсем то, что в реальности и такие тестовые таблицы имеют много подводных камней, даже если вместо букв идут слова из словаря (если вы тестируете сложный движок), но для учебных целей её обычно более чем достаточно.

  Ответить  
 
 автор: Valick   (09.07.2011 в 16:39)   письмо автору
 
   для: Богданн   (09.07.2011 в 16:32)
 

да тут проблема, что информация для эксперемента мне кажется должна быть хоть маленько осмыслена
можно конечно сделать два цикла внешний на 50000 итераций и внутренний на 10000 в котором собирается запрос на многострочный INSERT и желательно чтобы данные повторялись, можно поиграть потом с группировками и тд
___
у Вас складывается впечатление, что мы "гады немцы" Вас обманываем?))
зачем проверять, то что уже давно проверено?
есть три вида индексов нужные, бесполезные и вредные

  Ответить  
 
 автор: Богданн   (09.07.2011 в 16:32)   письмо автору
 
   для: cheops   (09.07.2011 в 16:29)
 

а, как можно заполнить данными базу для експеримента через пхп?

  Ответить  
 
 автор: Valick   (09.07.2011 в 16:30)   письмо автору
 
   для: Богданн   (09.07.2011 в 16:25)
 

у Вас два варианта - либо поверить наслово, либо набить базу и самому убедиться в том что с индексами селект гораздо быстрее))

  Ответить  
 
 автор: cheops   (09.07.2011 в 16:29)   письмо автору
 
   для: Богданн   (09.07.2011 в 16:25)
 

Ну, да можно. Если вы пользуетесь консольным mysql, то видите, что он выводит время выполнения каждой записи. Только таблица должна быть довольно объемная (несколько мегабайт, а лучше десятков мегабайт), так как маленькие таблицы MySQL и без ключей очень быстро обрабатывает.

  Ответить  

Сообщения:  [1-10]   [11-14] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования