Здравствуйте! Извиняюсь заранее так как только начал заниматься MySQL и прошу прощения если мой вопрос окажется слишком простым но я облазил весь инет и так не нашел ответа на мой вопрос, наверное пока не научился как надо искать но я стараюсь. Обращаюсь к местным гуру! У меня база MySQL В ней автоинкрементный id и другие колонки Когда через сайт добавляются строки то все нормально, но если я удаляю где-то в середине то при следующей вставки строки она попадает на место той последней которая была мной удалена через сайт, а мне нужно чтобы она вставала последней в таблице. --- То есть у меня например такие id 1 2 3 4 5 --- После удаления id 3 1 2 4 5 --- После добавления id 6 1 2 6 4 5 --- А нужно чтобы было 1 2 4 5 6 --- Зачем мне это нужно? Если у меня соблюдается последовательность добавлений данных в таблице то отображая данные в цикле соблюдается последовательность в которой были данные добавлены, а это мне важно.
я бы даже сказал order by id asc ))) системе управления базами данных всё равно, в каком порядке вы что добавляете. логически все записи хранятся независимо друг от друга. но из-за того что индексы и записи занимают место, становится выгодным хранить физически записи подряд, а не вразброс, и новая запись становится на место старой. select * from `tab` order by `id` asc определяет новый порядок выдачи
Invision Да, это для вывода подходит, спасибо )) Но в самой таблице очередность id находится в беспорядочном состоянии. У меня еще вопрос, есть ли смысл сортировать всю таблицу по id упорядочивая их по возрастанию, или лучше не трогать?
titch То есть, если скажем в MySQL было устроено что каждая последующая запись заносится в конец, то удаленные индексы оставляют дырки и это хуже системе? Скажем в таблице удаляем 100 индексов, и последующее заполнение будет именно этих грубо говоря 100 дырок или только последний удаленный индекс имеет заполнение?
Мускул так устроен, что физикой хранения он знанимается сам. Если скорость доступа становится неоптимальной, то он может по своему усмотрению при каком-то из запросов дефрагментировать базу. Вы никак на это повлиять не можете (если очень глубоко копать, то можете, но я не советую). Пользователю предоставляются инструменты для работы с логикой базы, и, я уверяю, этого вполне достаточно.
titch Кажись понятно, наверное такие программы как Navicat немного путают новичка, когда смотришь в таблицу и ужасаешься от последовательности данных, и не понимаешь как это все может нормально быть при выводе на страницу )) Это все наверное из-за того что работая с файловыми базами, привыкаешь что все должно иметь свою последовательность и через цикл можно прочитать и вывести. А тут в мускуле, на тебе, когда смотришь через программы просмотра таблицы то каша-малаша, и с чем бы ее съесть ))