Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте.
Это мой первый опыт работы с MySQL.
Проверьте пожалуйста структуру базы данных,нет ли глобальных косяков, может можно её улучшить.
1) таблица с данными по температуре и влажности.
С "одной стороны" в неё регулярно капают данные, которые сохраняются с CURRENT_TIMESTAMP.
С "другой стороны" идет выборка последнего по дате, n последних по дате, все записи за период с ... по ...
Соответствующие запросы:
Отредактированно Siogun (06.04.2018 10:35:21)
Неактивен
1) лишь бы индекс на date был и все должно быть хорошо )
2)
Неактивен
Спасибо.
Запрос что-то ничего не выдал... Или в нем надо что-то подставить?
Я пробовал запрос
Неактивен
А сколько же он должен выдать? Почему Вы не доверяете phpmyadmin'скому результату?
Неактивен
Почему же.... Очень доверяю.... Я не доверяю результату из панели управления хостинга... Там то показывается раза в 2-3 больше (причем от размера базы данных зависит непонятно как). И по какому из этих значений место ограничится тоже не понятно.
Потому и думал, когда место закончится, явно ж какую-то ошибку выбъет. и тогда уже подчистить старые записи.
Неактивен
Ограничения выставляет хостинг, поэтому логично ориентироваться на его показания.
Как вариант, разница может составлять всего несколько мегов, из-за малого размера базы кажется, что отличие в разы. Если с ростом базы ситуация не нормализуется, уточняйте у хостера - откуда такие цифры.
Покажите результат выполнения
show create table `temperature`;
Неактивен
Спасибо.
CREATE TABLE `temperature` (
`date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`temperature` float NOT NULL,
`humidity` float NOT NULL,
PRIMARY KEY (`date`),
UNIQUE KEY `date` (`date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='База данных по температуре'
Неактивен
PRIMARY KEY (`date`),
UNIQUE KEY `date` (`date`)
создает 2 одинаковых индекса
выполните
drop index `date` on `temperature`;
или используйте панель пхпадмина для удаления второго индекса
Неактивен
вам точно нужен datetime для `date`?
может подойдет timestamp?
Неактивен
точно.. так лучше
CREATE TABLE `temperature` (
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`temperature` float NOT NULL,
`humidity` float NOT NULL,
PRIMARY KEY (`date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='База данных по температуре'
стало 7,1 (15,3) Мб
Грасиас!!!
Неактивен