Как я могу подсчитать размер таблицы в MySQL или PosgreSQL с помощью ограничения? , например:WHERE organisation_id=1
Как вычислить размер таблицы, используя условие
ответ
Если у вас есть ассоциации, установленные в вашей модели следующим образом:
class Organisation < ActiveRecord::Base
has_many :members
end
class Member < ActiveRecord::Base
belongs_to :organisation
end
, то вы можете найти, сколько членов в организации 1 со следующим:
organisation = Organisation.find(1)
n_members = organisation.members.size
Благодаря ActiveRecord, эта вещь не зависит от базы данных.
В PostgreSQL вы не можете. Данные хранятся в блоках (обычно по 8 кбайт каждый), и вы не знаете, в каком блоке хранятся записи с «organisation_id = 1». Когда все записи находятся в одном блоке, это 8kb. Когда 100 записей хранятся в 100 блоках, это 800kb, но это также включает и другие записи.
Вы можете сделать магию со скрытой колонкой «ctid», но это очень много работы, не точной и не очень полезной. Просто используйте pg_relation_size(), чтобы получить всю таблицу, вот что вам нужно. Если вам нужна таблица TOAST, используйте pg_total_relation_size().
ModelName.count(:conditions => {:organisation_id => 1})
Я думаю, что это может быть простое решение, тогда я могу умножить на количество байтов, которое требуется для каждого столбца. –
Хм, я знаю, что мой ответ неверен. Он не дает размер таблицы, но подсчитывает строки в таблице. – klew
Но ... 'conditional_table_size = rows * row_size' – Randolpho
Даже короткая версия
ModelName.count(:organisation_id => 1)
Это зависит от вашей структуры таблицы. Если у вас есть все поля с фиксированной шириной, вы можете приблизиться. Если у вас есть поля переменной ширины, лучше всего вы сделаете оценку. Это для postgres.
SELECT pg_total_relation_size('my_table') * i/cnt
FROM (
SELECT SUM(CASE WHEN organization_id = 1 THEN 1 ELSE 0 END) AS i,
COUNT(1) AS cnt
FROM my_table
) sub
- 1. Как вычислить таблицы mysql/размер базы данных
- 2. Как вычислить размер строки bigquery?
- 3. вычислить каждый табличные значения, используя, если другое условие
- 4. Как вычислить значение времени компиляции, используя размер членов профсоюзов?
- 5. как изменить размер изображения, используя реальное изображение, если условие
- 6. Вычислить размер кортежа
- 7. вычислить пространственный размер графика
- 8. Как вычислить размер ломаной линии
- 9. Как вычислить размер безопасного кеша?
- 10. Как вычислить переменные из столбцов таблицы, используя xlrd?
- 11. Как вычислить преобразование, используя координаты прямоугольника?
- 12. MySQL, используя поле таблицы в подзапросе как условие
- 13. Вычислить размер набора файлов
- 14. Вычислить размер прокрутки прокрутки
- 15. Используя условие в Calculatetable()
- 16. Вычислить максимальный размер строки
- 17. Размер QByteArray сложно вычислить?
- 18. Laravel - вычислить общий размер каталога?
- 19. Вычислить размер Json Размер в Kb или Mb в android?
- 20. Вычислить размер базы данных webservice
- 21. Вычислить сигма фильтр Гаусса, используя размер этого ядра
- 22. Как проверить условие, используя флажок?
- 23. Вычислить требуемый размер для UITextView
- 24. как выбрать, используя условие в SQL запросе
- 25. Как вычислить множественные коэффициенты коэффициентов, используя R?
- 26. вычислить дисперсию, используя SQL
- 27. Вычислить столбец таблицы, используя более таблицу на стороне сервера
- 28. Вычислить процент таблицы SQL
- 29. Вычислить обивка неуправляемого таблицы
- 30. набор условие кендо сетки поля таблицы, используя шаблон
метод подсчета будет намного быстрее – fl00r
@ fl00r: это метод подсчета. После загрузки 'organisation' он делает то же, что и в моем примере. – klew
klew, вы правы. Я смешал методы _length_ и _size_ – fl00r