Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 01.03.2016, 11:12   #1
denis76560
Форумчанин
 
Регистрация: 13.01.2010
Сообщений: 118
Репутация: 35
По умолчанию 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 в 11:15.
denis76560 вне форума   Ответить с цитированием
Старый 01.03.2016, 11:25   #2
ADSoft
Профессионал
 
Регистрация: 25.02.2007
Адрес: Татарстан
Сообщений: 3,211
Репутация: 896

icq: 303-206-418
skype: ad-soft.info
По умолчанию

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

Сама запись удаляется, т.е. после удаления и запроса к базе - записи уже нет,
а размер файла базы (в свойствах файла базы данных) остается абсолютно таким же.
denis76560 вне форума   Ответить с цитированием
Старый 01.03.2016, 11:57   #4
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 16,337
Репутация: 3242

icq: 512-765
skype: alexp.frl
По умолчанию

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

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

Там после DELETE оно просто помечает место как свободное и использует в будущем. Если очень надо уменьшить размер после удаления, то есть VACUUM http://www.sqlite.org/lang_vacuum.html
Alex11223 вне форума   Ответить с цитированием
Старый 01.03.2016, 12:09   #5
denis76560
Форумчанин
 
Регистрация: 13.01.2010
Сообщений: 118
Репутация: 35
По умолчанию

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

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

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

Возможно, при удалении записи нужно перезаписывать целиком весь файл, чтоб этого "мусора" в файле не сохранялось, хотя, возможно я и не прав.
denis76560 вне форума   Ответить с цитированием
Старый 01.03.2016, 12:24   #8
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 16,337
Репутация: 3242

icq: 512-765
skype: alexp.frl
По умолчанию

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

Цитата:
остальные данные об этой записи
это что?
Alex11223 вне форума   Ответить с цитированием
Старый 01.03.2016, 12:37   #9
ADSoft
Профессионал
 
Регистрация: 25.02.2007
Адрес: Татарстан
Сообщений: 3,211
Репутация: 896

icq: 303-206-418
skype: ad-soft.info
По умолчанию

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

Цитата:
Сообщение от 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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
База данных 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 06.02.2010 00:20


21:47.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru