|
|
|
|
|
для: cheops
(21.08.2011 в 00:48)
| | про компактность я уже сказал, что полностью согласен и даже никогда и не был против
но вот добавив (не сложив не умножив, а действительно пришпандорив тупо спереди и эта операция будет выполняться действительно со строкой а не с числом) префикс из цифр я получу число и я и мой алгоритм будут знать что делать с таким "числом" и как его обрабатывать и самое главное в базе оно будет храниться как число | |
|
|
|
|
|
|
|
для: Valick
(21.08.2011 в 00:31)
| | >с чего вы взяли что я собрался что-то на что-то делить?
>и уж абсолютно мне непонятно почему вы заняли позицию, что в десятичной системе нужно без
>вариантов делить? :)
Потому что взятие остатка из конца числа или из начала суть эквивалентно делению или взятия остатка от деления, какую систему вы используете при этом не имеет значения.
Не имеет значения также какое у вас основание, числа в компьютере представляются все-равно двоичной системой и эта система позиционная и позиции отсчитываются не с начала, а с конца.
Если вы вводите префикс, вы уже имеете дело со строкой, так как манипулируете позициями, а не числовыми значениями. Префикс к тому же убивает все числовые механизмы генераторов новых значений - они превращаются в строковые. Путь к файлу всегда строка, чем больше символов вы используете в строке, тем короче у вас названия, тем быстрее они ищутся на диске, тем меньше трафика они потребляют при выводе. Еще раз повторю, что для небольших систем это не имеет значения.
>и уж абсолютно мне непонятно почему вы заняли позицию, что в десятичной системе нужно без
>вариантов делить? :)
Ну отнимайте, складывайте или умножайте... если это число, с ним не так много операций можно провернуть. Если это строка, читайте выше - есть более экономные способы работы со строками, чем больше символов используется в строке, тем более компактным способом можно передать больше информации. | |
|
|
|
|
|
|
|
для: Valick
(21.08.2011 в 00:31)
| | >с чего вы взяли что я собрался что-то на что-то делить?
>и уж абсолютно мне непонятно почему вы заняли позицию, что в десятичной системе нужно без
>вариантов делить? :)
Потому что взятие остатка из конца числа или из начала суть эквивалентно делению или взятия остатка от деления, какую систему вы используете при этом не имеет значения.
Не имеет значения также какое у вас основание, числа в компьютере представляются все-равно двоичной системой и эта система позиционная и позиции отсчитываются не с начала, а с конца.
Если вы вводите префикс, вы уже имеете дело со строкой, так как манипулируете позициями, а не числовыми значениями. Префикс к тому же убивает все числовые механизмы генераторов новых значений - они превращаются в строковые. Путь к файлу всегда строка, чем больше символов вы используете в строке, тем короче у вас названия, тем быстрее они ищутся на диске, тем меньше трафика они потребляют при выводе. Еще раз повторю, что для небольших систем это не имеет значения.
>и уж абсолютно мне непонятно почему вы заняли позицию, что в десятичной системе нужно без
>вариантов делить? :)
Ну отнимайте, складывайте или умножайте... если это число, с ним не так много операций можно провернуть. Если это строка, читайте выше - есть более экономные способы работы со строками, чем больше символов используется в строке, тем более компактным способом можно передать больше информации. | |
|
|
|
|
|
|
|
для: Axxil
(21.08.2011 в 00:30)
| | :) я уже второй год пишу когда время есть игру морской бой... абсолютно некоммерческий проект для детей
тут первый вариант движка "на массивах", но привязка к сессии не устраивала, а гонять массив тупо туда сюда в БД просто глупо
на "новогодних каникулах" переписал все с использованием БД, абсолютно другой алгоритм получился | |
|
|
|
|
|
|
|
для: cheops
(21.08.2011 в 00:14)
| | К строке вы можете префикс от 01 до 28 добавить без проблем
я и к числу могу добавить префикс без проблем, и точно так же буду знать что первые два три символа это префикс, с чего вы взяли что я собрался что-то на что-то делить? и почему вы считаете что делить можно только в десятичной системе? :) и уж абсолютно мне непонятно почему вы заняли позицию, что в десятичной системе нужно без вариантов делить? :) | |
|
|
|
|
|
|
|
для: Valick
(21.08.2011 в 00:06)
| | >> я не спроектировал ни одной системы, я не написал ни одного сайта, я вообще не программист...
Спасибо за честность. | |
|
|
|
|
|
|
|
для: Valick
(21.08.2011 в 00:00)
| | К строке вы можете префикс от 01 до 28 добавить без проблем, потом появится сервера с 29 по 54 - просто изменится префикс, к числу вы этого уже не добавите, если вы до этого просто делили на 28 число, то с вводом новых серверов нельзя будет делить на 54, так как для вычисления позиции старых файлов вам нужно делить на 28. Это можно было бы избежать, если бы у вас был строковый хэш, но так как у вас числовой хэш - он увеличивается равномерно и суффикс или префикс в него уже не упакуешь.
И это мы еще пока не рассматриваем ситуацию, когда вам нужно MySQL сервер (и одну базу данных) расположить не на одном, а на десятке другом серверов. Есть преимущества в строковых хэшах... хотя бы еще потому, что они сравниваются сначала, а не с конца, поэтому их можно проиндексировать, в отличие от предложенной вами схемы: нельзя построить обратный индекс в MySQL, т.е. быстро выбрать все записи для чисел, заканчивающихся на 47. А когда вам нужно обслужить все записи одного сервера, это становится важным.
PS Если бы не было преимуществ - никто бы такие хэши не использовал бы, но их используют и довольно интенсивно. В MySQL, конечно, редко встречается, как правило, под MySQL разворачивают не очень большие базы, MyISAM на больших объемах захлебывается, а InnoDB не сильно шустрый и крайне своеобразный. | |
|
|
|
|
|
|
|
для: Axxil
(20.08.2011 в 23:54)
| | я не спроектировал ни одной системы, я не написал ни одного сайта, я вообще не программист...
(хотя мог бы сказать, что запрограммировал и гугл и яндекс и рамблер и яху вдоль и поперек)
вы полагаете я не имею права с вами спорить? и тем более учить вас уму разуму? :)
с удовольствием послушаю что написали вы и тем более то как вы собираетесь это доказать ;)
___
поверьте, когда заканчиваются аргументы.. не все средства хороши) | |
|
|
|
|
|
|
|
для: cheops
(20.08.2011 в 23:16)
| | чем больше символов вы задействуете на одном месте, тем короче
с этим я и не спорил (хотя выигрывая в длине, проигрываем в типе поля, со всеми вытекающими)
и это я как раз отлично понимаю
я про равномерное распределение на 28 (на 37, на 53, на 82) серверов в чем отличие 10-ной и 16-ной систем? каким боком тут кратность поможет? | |
|
|
|
|
|
|
|
для: Valick
(20.08.2011 в 21:51)
| | Простой вопрос разрешите? Какая самая большая система, которую Вы проектировали? | |
|
|
|
|