Tổng hợp một số lệnh Query MySQL thường sử dụng trong quá trình tương tác với cơ sở dữ liệu.
Index trường dữ liệu
Lệnh query đánh chỉ mục (index) trường dữ liệu. Cấu trúc query như sau:
ALTER TABLE table_name ADD INDEX your_index_name (column_name_1, column_name_2, column_name_3);
Ví dụ:
ALTER TABLE task_request_type_items ADD INDEX id_name_index (id, name);
Ví dụ trên được test đánh chỉ mục dữ liệu cho trường id và name của bảng task_request_type.
Query xem dung lượng database
SELECT table_schema as `Database`, ROUND(sum( data_length + index_length ) / 1024 / 1024,3) as `SizeInMB` FROM information_schema.TABLES GROUP BY table_schema order by SizeInMB DESC
Query lấy lệnh tạo bảng
Query lấy cấu trúc lệnh query để tạo bảng cơ sở dữ liệu:
SHOW CREATE TABLE `table_name`
Query Truncate Table
Xoá toàn bộ dữ liệu bảng và reset khoá chính.
TRUNCATE TABLE `table_name`; ALTER TABLE `table_name` AUTO_INCREMENT = 1;
Query lấy danh sách cột của bảng
Lấy danh sách cấu trúc cột của bảng hiển thị dạng table_name: field1, field2, field3,….
SELECT CONCAT(table_name, ': ', GROUP_CONCAT(column_name ORDER BY ordinal_position SEPARATOR ', ')) FROM information_schema.columns WHERE table_name = 'task_request_type_items' GROUP BY table_name
Kết quả ví dụ: task_request_type_items: id, parent_id, name, description, active
Query lấy cấu trúc theo định dạng text tuỳ chỉnh khác
SELECT CONCAT(table_name, ':\n', GROUP_CONCAT(CONCAT(column_name, ': [', column_type, CASE WHEN column_comment IS NOT NULL AND column_comment != '' THEN CONCAT(' - ', column_comment) ELSE '' END, ']\n') ORDER BY ordinal_position SEPARATOR '')) FROM information_schema.columns WHERE table_name = 'task_request_type_items' GROUP BY table_name
Kết quả hiển thị ví dụ:
task_request_type_items: id: [int(11)] parent_id: [int(11) - Cha] name: [varchar(100) - Tên công việc] description: [text - Mô tả công việc] active: [tinyint(1) - 0 - Không hoạt động | 1 - Hoạt động]
Query thống kê top bảng dữ liệu nhiều nhất
Thống kê top bảng dữ liệu có nhiều dòng dữ liệu nhất trong cơ sở dữ liệu và kích thước lưu trữ.
SELECT TABLE_NAME, FORMAT(TABLE_ROWS, 0) AS DATA_ROWS, CONCAT(FORMAT(DATA_LENGTH/1024/1024, 2), ' MB') AS TABLE_SIZE_MB FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'quanly_qlmoi' ORDER BY TABLE_ROWS DESC LIMIT 20;
Kết quả hiển thị ví dụ:
warehouse_tmp_details: 1,448,606 size: 95.61 MB warehouse_transaction_details: 1,407,701 size: 86.61 MB pancake_tags_detail: 928,949 size: 57.58 MB action_histories: 696,228 size: 70.59 MB love_newyear_event_histories: 427,476 size: 26.55 MB rates: 395,660 size: 18.55 MB voucher_detail: 353,232 size: 48.58 MB love_transactions: 267,552 size: 28.56 MB ci_sessions: 260,448 size: 63.34 MB appointments: 208,596 size: 36.56 MB admin_user_schedule_detail: 188,307 size: 7.52 MB sale_care_phone_logs: 153,604 size: 85.61 MB academy_student_care: 144,202 size: 10.52 MB ads_recalls: 141,009 size: 37.56 MB customer_complain_users: 128,847 size: 5.52 MB sale_care_phone_camps: 95,618 size: 3.52 MB aca_sale_care_list: 94,325 size: 6.52 MB warehouse_transaction_logs: 92,165 size: 8.52 MB sale_care_list: 80,975 size: 6.52 MB sale_care_offline_phone_camps: 72,708 size: 2.52 MB