Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2016, 10:12   #1
denis76560
Форумчанин
 
Регистрация: 13.01.2010
Сообщений: 121
По умолчанию PHP и база данных SQL

Здравствуйте, всю ночь ломал голову с проблемой, которую так и не смог решить.
Дело в том что переделал один из паблик скриптов, в котором база данных хранится в файле SQL-формата "datas.sdb" чтобы не замарачиваться с настройками на сервере, все бы ничего но, но при удалении одной из записей из баз данных, размер базы совершенно не уменьшается,

удаляю из базы так:
PHP код:
if(isset($_GET['ipDel'])) {
    
header("Content-Type: text/plain");

    
$query $sqlite_db->query("DELETE FROM tracks WHERE ip = '" $_GET['ipDel'] ."'");

      echo 
$_GET['ipDel'].' Deleted';

    die();

но размер файла базы каким был, таким же и остался.
Хотя запрос в базу обрабатывается верно.

Подскажите пожалуйста, что я делаю не так, на всякий случай приложу архив.
Буду очень благодарен за любую помощь в решении этого вопроса.

http://rghost.ru/88qBQJcF6

Последний раз редактировалось denis76560; 01.03.2016 в 10:15.
denis76560 вне форума Ответить с цитированием
Старый 01.03.2016, 10:25   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

я чет не понял - у вас запись не удаляется, либо запись удаляется - но размер самой базы не изменяется? И как вы смотрите размер? размер в МБ... или размер имеете ввиду в кол-ве записей ..проясните туман
ADSoft вне форума Ответить с цитированием
Старый 01.03.2016, 10:31   #3
denis76560
Форумчанин
 
Регистрация: 13.01.2010
Сообщений: 121
По умолчанию

Сама запись удаляется, т.е. после удаления и запроса к базе - записи уже нет,
а размер файла базы (в свойствах файла базы данных) остается абсолютно таким же.
denis76560 вне форума Ответить с цитированием
Старый 01.03.2016, 10:57   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
файле SQL-формата
Не бывает такого формата, SQL это язык запросов. Разве что у вас текстовый файл со списком команд.

Судя по коду в архиве SQLite используется.

Там после DELETE оно просто помечает место как свободное и использует в будущем. Если очень надо уменьшить размер после удаления, то есть VACUUM http://www.sqlite.org/lang_vacuum.html
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 01.03.2016, 11:09   #5
denis76560
Форумчанин
 
Регистрация: 13.01.2010
Сообщений: 121
По умолчанию

я про вакуум читал, но это не то, вопрос в том - как удалить целиком всю запись (информацию) о данном IP из базы.
А про то что вы писали выше, я через блокнот и хекс редактор видел.
denis76560 вне форума Ответить с цитированием
Старый 01.03.2016, 11:12   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Сама запись удаляется, т.е. после удаления и запроса к базе - записи уже нет
Цитата:
вопрос в том - как удалить целиком всю запись (информацию) о данном IP из базы
Взаимоисключающие утверждения. Дык в чем же вопрос?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 01.03.2016, 11:21   #7
denis76560
Форумчанин
 
Регистрация: 13.01.2010
Сообщений: 121
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Взаимоисключающие утверждения. Дык в чем же вопрос?
Запись удаляется не целиком, а просто в файле помечается как неиспользуемая (надеюсь, я верно выразился),
а весь мусор (остальные данные об этой записи) так и остаются в файле.

Возможно, при удалении записи нужно перезаписывать целиком весь файл, чтоб этого "мусора" в файле не сохранялось, хотя, возможно я и не прав.
denis76560 вне форума Ответить с цитированием
Старый 01.03.2016, 11:24   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
а просто в файле помечается как неиспользуемая
Ну и чем тогда вакуум не то?

Цитата:
остальные данные об этой записи
это что?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 01.03.2016, 11:37   #9
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

тут похоже вообще ни что ни при чем....
вам не фиолетово кто что где как помечается...? .вам нужен удобный доступ к бд ? - вот он.. пользуейте и не думайте кто, где когда и как чего освободит. Иначе пишите свою БД полностью и делайте все сами
ADSoft вне форума Ответить с цитированием
Старый 01.03.2016, 11:54   #10
denis76560
Форумчанин
 
Регистрация: 13.01.2010
Сообщений: 121
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Ну и чем тогда вакуум не то?


это что?
Уже пробовал и

PHP код:
$query $sqlite_db->query("VACUUM"); 
и
PHP код:
$query $sqlite_db->query("VACUUM FULL"); 
Размер остается тот же.
Смотрел по табличке тут (http://bourabai.kz/dbt/servers/postgresql.htm)
Там указано что для MySQL - Чистка после работы команд UPDATE и DELETE - не нуждается
А VACUUM, только если база данных PostgreSQL
Это ведь не одно и тоже.
denis76560 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
База данных SQL +C# KateZ Помощь студентам 0 28.11.2013 19:37
SQL база, замена данных Dkey PHP 2 31.07.2012 02:31
База данных C++ Builder +SQL Dfoer Фриланс 1 09.03.2012 12:58
База данных. ADOQuery SQL Zohei Помощь студентам 2 01.05.2010 15:28
база данных SQL motaro SQL, базы данных 0 05.02.2010 23:20