![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
В таблице было около 300-тыс. записей, и размер базы данных весил 25 метров.
После удаления записей из таблицы осталось всего 3-тыс. записей, но тут я заметил что размер базы данных не изменился о_О. Также скорость работы осталось прежней что не есть хорошо. Делаю простой запрос через php.
Может я не знаю какой та секрет, или просто не правильно написал запрос. За ранее Спасибо! |
|||
|
||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
О и еше вопрос, по функции array_merge
Объединяет но не правильно. Есть два массива с ключами и ключ начинается с цифры 1, после объединения появляется ключик с цифрой 0 который мне не нужен. Как правильно объединить массивы с ключами, может есть функция или я не правильно написал, пока вижу простой вариант пересчитать все с помощью foreach |
|||
|
||||
CruorVult |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: 9 Всего: 28 |
Это смотря какие запросы строятся, т.к. величина таблицы может незначительно влиять на скорость выполнения запросов. Добавлено через 1 минуту и 12 секунд
привеите примеры массивов и результат после объеденения Добавлено через 7 минут и 48 секунд можно предварительно сохранить данные, потом сделать
и потом записать заново |
||||
|
|||||
neoks |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Что та я в этом сомневаюсь, если в таблице лимон записей то будет тяжко приходится на mysql, даже от простого запроса WHERE .... С массивами разобрался, нашол пример там оказалось все просто со знаком +
Тут я не понял, можно по подробнее объяснить ![]() |
||||
|
|||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
какой двиг используется в таблицы innoDB или другой?
innoDB по умолчанию резервирует место под таблицу и по мере роста таблицы расширяет диапазон.
-------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Собственный. Как я понял TRUNCATE TABLE удаляет все, вообшем чистит таблицу. Я поискал в нете и опробовал, но мне не подходит, мне не просто нужно очистить таблицу, а оставить записи где d_r=1. Я запросом удаляю все где d_r=0, удаление проходит но размер остается что влияет на скорость. Теперь думаю, может все записи которые нужно сохранить копировать в временную таблицу, очистить и сново добавить записи. Но и тут проблема, во первых id - auto_increment и мне кажется что полезут ошибки, а во вторых мне кажется что это будет выполнятся очень долго и ответа не дождусь. |
|||
|
||||
CruorVult |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: 9 Всего: 28 |
TRUNCATE + копирование будет быстрее работать чем удалять сотни тыщ записей Добавлено через 1 минуту и 19 секунд
будет работать практически одинаково, что с лимоно что с парами тыщ |
||||||
|
|||||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Такс, не до конца пойму как сделать.
Для примера, есть таблица в которой есть записи с уникальным id - auto_increment это id используется для других таблиц, им нужна знать этот id. ----------------------- table ----------------------- id | name | d_r ----------------------- 1 | url_23 | 0 ----------------------- 2 | url_2d_p | 1 Другая таблица curer типа курьера, через нею все пересекается. ----------------------- curer ----------------------- id | page_id | post_id ----------------------- 5 | 1 | 34 ----------------------- 8 | 2 | 47 В таблицы curer хранятся id других записей в таблицах. Например когда я обращаюсь к таблице table я заодно обращаюсь к таблице curer где page_id равен id и оттуда вытаскиваю post_id. Хууу, надеюсь пояснил правильно, так вот, с помощью DELETE все эти id в таблице table остаются то что мне нужно. Но если использовать TRUNCATE то все удалится и id обновится с 0.
А вот теперь по подробнее, я не вникаю как это сделать. |
|||
|
||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Лан, пойдем другим путем, ктонить знает как скопировать таблицу без записей в новою с другим название.
Я хочу сделать копию таблицы, затем выделить те записи которые должны остаться и циклом while записать в новою, после удалить старую и переименовать новою в старую. Пока не вкурсах как это сделать, буду искать в нете но врятли я там найду на понятном мне русском. Если кто та знает как сделать то подскажите пожалуйста новичку в этом деле. |
|||
|
||||
CruorVult |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: 9 Всего: 28 |
Это сообщение отредактировал(а) CruorVult - 5.8.2011, 12:26 |
|||
|
||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
CruorVult
Спасибо за ответ, мой вариант уж был огромным, я создавал таблицу затем все переносил со старой на новою, отключал/включал индекс и все удалял. А тут такой маленький и рабочий, все всем спасибо еще раз, теперь буду спать спокойно, размер базы упал до 2 метров. Добавлено через 2 минуты и 51 секунду Опа, а как теперь вернуть индекс таблицы на id. |
|||
|
||||
CruorVult |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: 9 Всего: 28 |
Добавлено через 4 минуты и 23 секунды ну или не удалять таблицу:
|
||||
|
|||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Что та не фурычит, как я понял ADD это добавить, но мне не нужна добавлять так как уже есть, просто id не auto_increment.
Добавлено через 6 минут и 46 секунд Не так не так не создается индекс. |
|||
|
||||
CruorVult |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: 9 Всего: 28 |
||||
|
||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Что та не пойму, через SQL работает, но через php выдант ошибку.
Incorrect table definition; there can be only one auto column and it must be defined as a key Добавлено @ 16:25 O теперь в SQL такайже ошибка #1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key Добавлено @ 16:29 Кстати всегда интересовал такой вопрос, почему столбец нельзя изменить на AUTO_INCREMENT Всегда выдает ошибку:
Только если удалить и заново создать. Это сообщение отредактировал(а) neoks - 5.8.2011, 16:30 |
|||
|
||||
CruorVult |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: 9 Всего: 28 |
||||
|
||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Сделал.
Как видно такова поля нет ![]() Это сообщение отредактировал(а) neoks - 5.8.2011, 16:50 |
|||
|
||||
CruorVult |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: 9 Всего: 28 |
и где у вас id имеет индекс?
|
|||
|
||||
baldina |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
у автоматического поля не может быть DEFAULT
или
если он уже PRIMARY KEY Добавлено через 2 минуты и 15 секунд
да хоть десять лимонов, если индекс используется. причем на скорость влияет число записей, а не размер файла БД (за исключением ситуаций, когда таблица целиком кешируется в памяти, но в общем случае это редкость) |
||||||||
|
|||||||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
![]() А когда пытаюсь поставить то муск меня посылает ![]() Ну вообщем нужна еше подучить, но проблема найти хороший справочник, лан еще раз спасибо за помощь ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |