AntiSlaed CMS
Вход
Логин: Пароль:Забыли пароль?
Запомнить вас на этом компьютере?
Войти скрытым?

Здравствуйте, Гость ( Вход | Регистрация )

> Внимание!

Адрес нашего форума изменился, теперь мы доступны по адресу antislaed.net. Обновите ссылки и закладки, он больше не изменится.


> Внимание!

В данном форуме под "Разным" подразумевается всё что относится к AntiSlaed CMS но не входит по логике в другие форумы категории AntiSlaed CMS. Создание тем которые должны быть в форуме "Флейм" или др. ЗАПРЕЩЕНО!

 
Тема закрытаНачать новую тему
> Альтернативный способ сортировки строк в БД
Immeasurability
сообщение Feb 18 2011, 02:01
Сообщение #1


Живу на АС
Иконка группы

Группа: Пользователи

Сообщений: 752
Регистрация:
11.12.2007
Из: Москва а так по всюду гы
Пользователь №: 1,591
Спасибо сказали: 154

Вставить ник




Собственно тему создал здесь: http://www.free-lance.ru/blogs/view.php?tr=619030


как такой способ сортировки???

Сообщение отредактировал Immeasurability: Feb 18 2011, 11:33
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение
vitalik1972
сообщение Feb 18 2011, 08:59
Сообщение #2


Живу на АС
Иконка группы

Группа: Пользователи

Сообщений: 765
Регистрация:
10.6.2008
Из: Оренбург
Пользователь №: 4,176
Спасибо сказали: 211

Вставить ник




ну ты наглееец (IMG:http://antislaed.net/style_emoticons/default/smile.gif)
фишинговая атака на http://link2you.ru

Так вот по поводу сортировки:
Поясни мне смысл своих манипуляций?
Ты думаешь, что если ты удалил запись из БД, то она реально удалилась? Вовсе нет!!! Просто мускул (или любая другая БД) поставил галочку у себя, что этой строки нет.
Именно для целей сортировки используются механизмы индексации. Если ты делаешь часто запросы, в которых есть ORDER BY, то ЛУЧШЕ всего сделать индексы по указанным полям или по их связкам.
Как живой пример приведу проблему, которая была у одного из АСовцев.
В таблице _users у него было 15000 записей. Тоесть 15000 пользователей. Так как код АС по качеству ненамного превосходит код слаеда то запросы выполнялись по 12-14 секунд (честное слово, сам с секундомером засекал).
После добавления индекса на полу user_name (вроде так) запрос на выборку из таблицы стал выполняться за сотые доли секунды.

Immeasurability я понимаю, что прикольно изобретать велосипеды, но вот только вопрос: ЗАЧЕМ?

А по поводу приведенной мной истории подтвердит Derial
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение
DjSalamander
сообщение Feb 18 2011, 09:30
Сообщение #3


прорвемся...
Иконка группы

Группа: [..AS..]

Сообщений: 2,388
Регистрация:
6.9.2008
Из: Latvia Riga-Vangaži
Пользователь №: 5,367
Спасибо сказали: 457

Вставить ник




ЦИТАТА(Immeasurability @ Сегодня, 00:01 )


Так как сайт загажен уева тучей попандеров, изза которых ничего не прочесть(а я их изза принципа никогда не закрываю)я сразу с таких сайтов ухожу, и на врятле когда то вернусь!!!
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение
Immeasurability
сообщение Feb 18 2011, 11:51
Сообщение #4


Живу на АС
Иконка группы

Группа: Пользователи

Сообщений: 752
Регистрация:
11.12.2007
Из: Москва а так по всюду гы
Пользователь №: 1,591
Спасибо сказали: 154

Вставить ник




ЦИТАТА
Так как сайт загажен уева тучей попандеров


=) я спецально предопредил что ссылки ссылки префиксные!!! и над было прост скопировать ссылку текстовою а не клацать по ней =)))

ЦИТАТА
После добавления индекса


индекс по двум полям стоит скорость запроса не пострадала!

смысл в удаление строк был не то что они пропали а то что они не влияют на сортировку!

провел анализ вышло вот что...

скорость запроса строк из таблы 188 записей без сортировки 0.00146
скорость запроса строк из таблы 188 записей сортировки id поля 0.00154
скорость запроса строк из таблы 188 записей сортировки position поля 0.00326
скорость запроса строк из таблы 188 записей сортировки id+position поля 0.00329
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение
vitalik1972
сообщение Feb 18 2011, 12:00
Сообщение #5


Живу на АС
Иконка группы

Группа: Пользователи

Сообщений: 765
Регистрация:
10.6.2008
Из: Оренбург
Пользователь №: 4,176
Спасибо сказали: 211

Вставить ник




На самом деле приведенные цифры - это не показатель.
Тут поможет ТОЛЬКО статистика, то есть если ты сделаешь тысячу запросов, вот тогда они будут более менее похожи на правду, а так...
Мускул на фоне своей работы делает несколько дел, в том числе когда к нему идет мало запросов - он переиндексирует БД.
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение
Immeasurability
сообщение Feb 18 2011, 12:02
Сообщение #6


Живу на АС
Иконка группы

Группа: Пользователи

Сообщений: 752
Регистрация:
11.12.2007
Из: Москва а так по всюду гы
Пользователь №: 1,591
Спасибо сказали: 154

Вставить ник




это анализ 20 запросов каждого...
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение
vitalik1972
сообщение Feb 18 2011, 13:41
Сообщение #7


Живу на АС
Иконка группы

Группа: Пользователи

Сообщений: 765
Регистрация:
10.6.2008
Из: Оренбург
Пользователь №: 4,176
Спасибо сказали: 211

Вставить ник




ЦИТАТА
смысл в удаление строк был не то что они пропали а то что они не влияют на сортировку!


Вот именно это и пытался я до тебя донести... Удаленные, перемещенные и прочие записи НЕ влияют на сортировку.
Отбор строк идет по индексу
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение
Immeasurability
сообщение Feb 18 2011, 14:05
Сообщение #8


Живу на АС
Иконка группы

Группа: Пользователи

Сообщений: 752
Регистрация:
11.12.2007
Из: Москва а так по всюду гы
Пользователь №: 1,591
Спасибо сказали: 154

Вставить ник




так чем лучше сортировка по positio в этом случаи:
id position
1 1
2 2
3 3
4 4
5 6
6 5
7 7
... ...
9999 9999

от этого варианта id и positio в этом?:
id position
1 0
2 0
3 0
4 0
5 1
6 -1
7 0
... ...
9999 0
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение
vitalik1972
сообщение Feb 18 2011, 15:55
Сообщение #9


Живу на АС
Иконка группы

Группа: Пользователи

Сообщений: 765
Регистрация:
10.6.2008
Из: Оренбург
Пользователь №: 4,176
Спасибо сказали: 211

Вставить ник




для мускула это абсолютно одинаковые по скорости выборки (в том случае если индексация есть по 2-ум полям)
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение
Sunvas
сообщение Feb 20 2011, 17:42
Сообщение #10


Фэнат Stamina-ы
Иконка группы

Группа: Разработчики
Сообщений: 2,470
Регистрация:
6.7.2007
Из: (-: Украина :-)
Пользователь №: 268
Спасибо сказали: 992

Вставить ник




Immeasurability
не так Вы измеряете производительность запросов (IMG:http://antislaed.net/style_emoticons/default/smile.gif) Проанализируте запрос при помощи волшебного EXPLAIN SELECT... , и определите, насколько он "попадает" в индексы. Результаты приведите здесь. Анализируйте, пожалуйста, на таблице в которой минимум 1000 строк. А после этого продолжим.

И еще одна задачека. Приведите, пожалуйста, её SQL решение.

Таблица id и pos
1 0
3 0
5 0
7 0
...
99 0
101 0

Необходимо 55ю строку переместить на место 33й, а затем 33ю переместить на место 77й.
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение
Immeasurability
сообщение Feb 22 2011, 12:35
Сообщение #11


Живу на АС
Иконка группы

Группа: Пользователи

Сообщений: 752
Регистрация:
11.12.2007
Из: Москва а так по всюду гы
Пользователь №: 1,591
Спасибо сказали: 154

Вставить ник




ЦИТАТА
И еще одна задачека


без алгоритма кода это будет выгладить так...

id position up
1 0 1
...
32 0 32
55 -22 33
33 44 77
77 0 77
...
9999 0 9999

77 id будет после id 33 (сам его id больше id 33)
ЦИТАТА
ORDER BY id+position ASC


Sunvas ты чего эт на ВЫ перешел? аль не уважение какое (IMG:http://antislaed.net/style_emoticons/default/smile.gif) ?

Sunvas про EXPLAIN позже тогда выложу! =)

Sunvas хоть скажи мысль то интересная с этим способом сорта???


провел тест с 1000`ю записями в БД средняя скорость запроса на локал хосте раб ноута 0.00889 в инет хосте это цыфра была бы в разы меньше сам знаешь наверно объяснять не нужно это при том что пока с индексами БД не баловался...

я то знаю к чему эти все допросы ооо интересная идея пусть ка он проанализирует если все куууул то будем юзать все...
я не против но пока еще не кто не сказал что идея интересная поэтому до этого сообщения больше не че пока не буду тестить...
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение
vitalik1972
сообщение Feb 22 2011, 21:24
Сообщение #12


Живу на АС
Иконка группы

Группа: Пользователи

Сообщений: 765
Регистрация:
10.6.2008
Из: Оренбург
Пользователь №: 4,176
Спасибо сказали: 211

Вставить ник




Immeasurability !!!!
РОМА! Бля закрой эту тему. Еп тваю мать, Immeasurability , че ты тупишь пля вообще?
Ты пытаешься сделать сортировку методами MYSQL лучше чем сам MYSQL.
И я и санвас тебе на это намекали. Че не понятного? читай маны по мускулу!!! Вот из чистого уважения к тебе как к разработчику!!!!
НЕ ТУПИ!!!! ТЫ ЗАЦИКЛИЛСЯ просто!
Сам сервер мускула делает все гораздо лучше, чем твои придумки. Почитай статью проиндексацию.
Все, не тупи уже...
Рома, закрывай тему. Мой пост имм..ти в личку.
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение
Sunvas
сообщение Feb 23 2011, 02:05
Сообщение #13


Фэнат Stamina-ы
Иконка группы

Группа: Разработчики
Сообщений: 2,470
Регистрация:
6.7.2007
Из: (-: Украина :-)
Пользователь №: 268
Спасибо сказали: 992

Вставить ник




ЦИТАТА(Immeasurability @ Вчера, 13:35 )
без алгоритма кода это будет выгладить так...

Алгоритм более интересен. Можешь мне послать на мыло.

ЦИТАТА(Immeasurability @ Вчера, 13:35 )
55 -22 33
33 44 77
77 0 77

А вот в промежутке, покажи, что будет.

ЦИТАТА(Immeasurability @ Вчера, 13:35 )
Sunvas хоть скажи мысль то интересная с этим способом сорта???

Способ - интересный, однако практичности/удобства пока я пока не вижу. Ресурсов жрет больше и в индексы не попадает. Одно время мне казался способ хранения деревьев NESTED SETS тоже интересным. Однако потребоволось больше года, чтобы понять, что практичности и удобства в нем так же нет. Какая перед тобой стоит задача? Если "разработать новый способ сортировки" - можешь не сомневаться, ты справился блестяще.

ЦИТАТА(Immeasurability @ Вчера, 13:35 )
провел тест с 1000`ю записями в БД средняя скорость запроса

Да хоть с 10000.. Время - не показатель, повторяю.
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение
Immeasurability
сообщение Feb 24 2011, 09:55
Сообщение #14


Живу на АС
Иконка группы

Группа: Пользователи

Сообщений: 752
Регистрация:
11.12.2007
Из: Москва а так по всюду гы
Пользователь №: 1,591
Спасибо сказали: 154

Вставить ник




ЦИТАТА
Алгоритм более интересен

часть алгоритма выслал на support@eleanor-cms.ru (не знаю это ли мыло) и EXPLAIN

ЦИТАТА
А вот в промежутке, покажи, что будет

все не затронутые строки не имеют не ко кого значения в поле position то есть 0
position только у строк которые были перемещены

32 0
55 -22
34 0
...
75 0
76 0
33 44
77 0
78 0

для ясности убрал третий столбец которого в БД не существует я его писал чтоб просто визуально видеть какая у него позиция по сумме (id+position)

ЦИТАТА
Какая перед тобой стоит задача?

1 код я тебе скинул по нему ясно =)
2 не переиндексововать все строки поля position при удалении или добавления нового материала
3 для себя много плюсов нашел...

vitalik1972 не принимай так пылко! =) кто то пасьянсы раскладывает кто то на порнуху дро...т, а кто более тупые темы создает... я просто такой хренью страдаю в свободное время =) все относительно

Сообщение отредактировал Immeasurability: Feb 24 2011, 09:57
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение

Тема закрытаНачать новую тему

2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
 

RSS Текстовая версия Сейчас: 20 May 2024 - 07:47
Хостинг предоставлен NetLevel.Ru   Eleanor CMS