https://dev.mysql.com/doc/refman/8.0/en/innodb-buffer-page-table.html говорит:
TABLE_NAME [115 ]
Название таблицы, к которой принадлежит страница. Этот столбец применим только к страницам со значением PAGE_TYPE, равным INDEX.
blockquote>То же самое относится к столбцу INDEX_NAME.
Попробуйте этот запрос, чтобы получить больше информации:
select page_type, page_state, table_name, index_name, count(*) as Page_Count, sum(data_size)/1024/1024 as Size_in_MB from information_schema.innodb_buffer_page group by page_type, page_state, table_name, index_name order by Size_in_MB desc;
Я вижу на вашем снимке экрана, что многие страницы пула буферов типа INDEX по-прежнему показывают NULL для имен таблиц и индексов. [ 119] 1110 Я не уверен, что это значит. Я посмотрел исходный код MySQL, и кажется, что он может оставить эти значения как NULL, если не может найти индекс в словаре данных InnoDB. Но я не уверен, как это могло произойти.
https://github.com/mysql/mysql-server/blob/5.6/storage/innobase/handler/i_s.cc#L5007
Комментарий от @C GK:
Да, вы правы, я проверил, и я вижу разницу. Я полагаю, что разница показывает коэффициент заполнения страниц.
select page_type, page_state, table_name, index_name, count(*) as Page_Count, count(*) * @@innodb_page_size /1024/1024 AS Total_Page_Size_in_MB, sum(data_size)/1024/1024 as Size_in_MB from information_schema.innodb_buffer_page group by page_type, page_state, table_name, index_name order by Size_in_MB desc +-------------------+------------+--------------+------------+------------+-----------------------+-------------+ | page_type | page_state | table_name | index_name | Page_Count | Total_Page_Size_in_MB | Size_in_MB | +-------------------+------------+--------------+------------+------------+-----------------------+-------------+ | INDEX | FILE_PAGE | `test`.`foo` | PRIMARY | 1940 | 30.31250000 | 27.87315369 |
Когда я должен вытянуть единственную таблицу от дампа sql, я использую комбинацию grep, головы и хвоста.
Например:
grep -n "CREATE TABLE" dump.sql
Это затем дает Вам номера строки для каждого, поэтому если Ваша таблица находится на строке 200 и та после того, как находится на строке 269, я делаю:
head -n 268 dump.sql > tophalf.sql
tail -n 69 tophalf.sql > yourtable.sql
Я предположил бы, что Вы могли расшириться на те принципы для поднимания сценария, который разделит все это вниз на один файл на таблицу.
Кто-либо хочет движение, делающее его здесь?
Другой бит, который мог бы помочь запустить движение цикла удара:
grep -n "CREATE TABLE " dump.sql | tr ':`(' ' ' | awk '{print $1, $4}'
Это дает Вам хороший список номеров строки и имен таблиц как:
200 FooTable
269 BarTable
Сохраните себя много стычки и использования mysqldump -T
если Вы можете.
Из документации:
- tab=path,-T путь
Произведите разделенные от вкладки файлы данных. Для каждой выведенной таблицы mysqldump создает tbl_name.sql файл, который содержит оператор CREATE TABLE, который составляет таблицу и файл tbl_name.txt, который содержит его данные. Значение опции является каталогом, в котором можно записать файлы.
По умолчанию .txt файлы данных отформатированы с помощью символов табуляции между значениями столбцов и новой строкой в конце каждой строки. Формат может быть указан явно с помощью - поля-xxx и - lines-terminated-by опции.
Примечание:
Эта опция должна использоваться только, когда mysqldump выполняется на той же машине как mysqld сервер. У Вас должно быть полномочие ФАЙЛА, и сервер должен иметь разрешение записать файлы в каталоге, который Вы указываете.
Maatkit seems quite appropriate for this with mk-parallel-dump and mk-parallel-restore.
Для меня банковский счет имеет набор корректировок. Банковский счет не является сбором корректировок, потому что он «гораздо» больше того: он также «является» именем и типом и т. д.
Так что, в вашем случае (и подобных случаях), я предлагаю вам агрегировать коллекцию внутри вашего класса.
В случае сомнений, избегайте наследования.: -)
Я могу аргументировать это дальше. Для правильного использования наследования подкласс должен удовлетворять принципу замещения Лискова ; это означает, что в вашем случае BankAccount
должен быть допустимым типом в любом месте, где ожидается Инкассо
. Я не думаю, что это так, потому что Коллекция
, вероятно, предоставляет такие методы, как Добавить ()
и Удалить ()
, в то время как вы хотите иметь некоторый контроль над добавлением и удалением корректировок с вашего банковского счета, а не позволять людям добавлять и удалять их свободно.
Далее: http://html2haml.heroku.com/
EDIT: Moved to https://html2haml.herokuapp.com/
-121--1093562- Этот сценарий оболочки захватит нужные таблицы и передаст их в splitted.sql
.
Он способен понимать регулярные выражения, так как я добавил опцию sed -r
.
Кроме того, MyDumpSplitter может разделить дамп на отдельные отвалы таблицы.