Мне нужно написать необработанный запрос в базе данных Laravel: Query Builder, который выводит размер конкретной таблицы
В основном запросе mysql выглядит следующим образом
SELECT table_name "Name_of_the_table", table_rows "Rows Count", round(((data_length + index_length)/1024/1024),2)
"Table Size (MB)" FROM information_schema.TABLES WHERE table_schema = "Name_of_the_Database" AND table_name = "Name_of_the_table";






Вы можете получить записи, используя необработанный запрос в laravel, например:
$sql = 'SELECT table_name "Name_of_the_table", table_rows "Rows Count", round(((data_length + index_length)/1024/1024),2)
"Table Size (MB)" FROM information_schema.TABLES WHERE table_schema = "Name_of_the_Database" AND table_name = "Name_of_the_table"';
$results = DB::select($sql);
Используйте БД; //в верхней части контроллера, и это прекрасно. Спасибо, требуется несколько минут, чтобы сделать его зеленым :D :D :D
Используйте БД; или вы можете использовать \DB::select($sql); а также .. Спасибо своему брату красоты laravel
Вы можете использовать построитель запросов, так как вы можете минимизировать необработанную часть до размера таблицы:
$data = DB::table('information_schema.TABLES')
->where('table_schema', 'Name_of_the_Database')
->where('table_name', 'Name_of_the_table')
->select(
'table_name as "Name_of_the_table"',
'table_rows as "Rows Count"',
DB::raw('round(((data_length + index_length)/1024/1024),2) as "Table Size (MB)"')
)
->first();
Это очень помогло, спасибо! Я использовал это, чтобы получить количество строк для очень большой таблицы при подсчете ошибок. Я просто перефразирую вопрос, чтобы он отображался и при поиске по этому запросу ;-)
Даже вам не нужно использовать DB::raw() для выбора по необработанному запросу. DB:select() сделает все за вас.