(1)MySQL查看表占用空間大小
//先進去MySQL自帶管理庫:information_schema
//自己的數據庫:dbwww58com_kuchecarlib
//自己的表:t_carmodelparamvalue
mysql> use information_schema; Database changed mysql> select data_length,index_length from tables where table_schema='your_database' and table_name = 'your_table'; +-------------+--------------+ | data_length | index_length | +-------------+--------------+ | 166379520 | 235782144 | +-------------+--------------+ row in set (0.02 sec) mysql> select concat(round(sum(data_length/1024/1024),2),'MB') as data_length_MB, concat(round(sum(index_length/1024/1024),2),'MB') as index_length_MB from tables where table_schema='your_database' and table_name = 'your_table'; +----------------+-----------------+ | data_length_MB | index_length_MB | +----------------+-----------------+ | 158.67MB | 224.86MB | +----------------+-----------------+ row in set (0.03 sec)
(2)慢查詢
1. 慢查詢有什么用?
它能記錄下所有執行超過long_query_time時間的SQL語句, 幫你找到執行慢的SQL, 方便我們對這些SQL進行優化.
2. 如何開啟慢查詢?
首先我們先查看MYSQL服務器的慢查詢狀態是否開啟.執行如下命令:
show variables like '%quer%';
?
我們可以看到當前log_slow_queries狀態為OFF, 說明當前并沒有開啟慢查詢.
開啟慢查詢非常簡單, 操作如下:
Linux下找到mysql的配置文件/etc/my.cnf, 在mysqld下方加入慢查詢的配置語句(注意:一定要在[mysqld]下的下方加入)
??
log-slow-queries = C:/Program Files/MySQL/MySQL Server 5.1/log/mysql-slow.log
long_query_time = 3
log-slow-queries: 代表MYSQL慢查詢的日志存儲目錄, 此目錄文件一定要有寫權限;
Windows下需要寫絕對路徑my.ini,如:log-slow-queries="C:/Program Files/MySQL/MySQL Server 5.5/log/mysql-slow.log"
long_query_time: 最長執行時間. (如圖, MSYQL將記錄下所有執行時間超過2條的SQL語句, 此處為測試時間, 時間不應太小最好在5-10秒之內, 當然可以根據自己的標準而定);
配置好以后重新啟動一個MYSQL服務
(3)當前時間添加分鐘
?select date_add(now(), interval 1 minute);
(4)復制表
-- 第一種 先創建表再拷貝數據
CREATE TABLE `id_interface_call_url_bak20180508` (
? `interface_id` bigint(30) NOT NULL AUTO_INCREMENT,
? `interface_call_url` varchar(200) DEFAULT NULL,
? `inner_interface_call` int(1) DEFAULT NULL COMMENT '是否接口內部調用:0:否;1:是',
? `send_request_msg` varchar(500) DEFAULT NULL,
? `desc_call` varchar(50) DEFAULT NULL,
? PRIMARY KEY (`interface_id`)
) ENGINE=InnoDB AUTO_INCREMENT=300001 DEFAULT CHARSET=utf8;
INSERT INTO id_interface_call_url_bak20180508 SELECT * FROM id_interface_call_url;
-- 第二種直接從原來創建表,缺點是主鍵等信息丟失
CREATE TABLE id_interface_call_url_bak AS SELECT * FROM id_interface_call_url;
-- 第三種
CREATE? TABLE IF NOT EXISTS tb_base_like2 (LIKE id_user_info_level);
INSERT INTO tb_base_like2 SELECT * FROM id_user_info_level;
(5)安裝過程命令
mysqld –remove
mysqld --initialize-insecure
mysqld --install mysql
mysqld --console
?
mysqld --initialize-insecure
?
(6)事務
?
1、查看
?
SELECT @@tx_isolation
?
2、設置事務級別
set transaction isolation level? read uncommitted;
1)read uncommitted : 讀取尚未提交的數據 :哪個問題都不能解決 2)read committed:讀取已經提交的數據 :可以解決臟讀 ---- oracle默認的 3)repeatable read:重讀讀取:可以解決臟讀 和 不可重復讀 ---mysql默認的 4)serializable:串行化:可以解決 臟讀 不可重復讀 和 虛讀---相當于鎖表
?3、事務命令
start transaction;
commit;
rollback;
?4、創建用戶并創建數據庫及賦權
root登錄
select host,user from mysql.user;
create user test identified by '123@456';
grant all privileges on *.* to 'test'@'%'identified by '123@456' with grant option;
flush privileges ;
參考:https://blog.csdn.net/xieyunc/article/details/80255742
?