linux系統(tǒng)進(jìn)入mysql數(shù)據(jù)庫(kù)的方法:
公司主營(yíng)業(yè)務(wù):成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出永春免費(fèi)做網(wǎng)站回饋大家。
連接MYSQL:
格式: mysql -h主機(jī)地址 -u用戶名 -p用戶密碼
1、連接到本機(jī)上的MYSQL。
首先在打開DOS窗口,然后進(jìn)入目錄 mysqlbin,再鍵入命令mysql -uroot -p,回車后提示你輸密碼,如果剛安裝好MYSQL,超級(jí)用戶root是沒有密碼的,故直接回車即可進(jìn)入到MYSQL中了,MYSQL的提示符是:mysql
2、連接到遠(yuǎn)程主機(jī)上的MYSQL。假設(shè)遠(yuǎn)程主機(jī)的IP為:110.110.110.110,用戶名為root,密碼為abcd123。則鍵入以下命令:
mysql -h110.110.110.110 -uroot -pabcd123(注:u與root可以不用加空格,其它也一樣)
3、退出MYSQL命令: exit (回車)
一個(gè)建庫(kù)和建表以及插入數(shù)據(jù)的實(shí)例:
create database school; //建立庫(kù)SCHOOL
use school; //打開庫(kù)SCHOOL
create table teacher //建立表TEACHER
(
id int(3) auto_increment not null primary key, //id設(shè)置為主關(guān)鍵字,并自動(dòng)設(shè)值,也就是添加的時(shí)候,你不必向ID字段寫內(nèi)容
name char(10) not null,
address varchar(50) default '深圳', //設(shè)置默值為深圳
year date
); //建表結(jié)束
//以下為插入字段
insert into teacher values('','glchengang','建平一中','1976-10-10'); //ID不用寫內(nèi)容
insert into teacher values('','jack','建平一中','1975-12-23');
if (select object_ID('tempdb..#BaseInfoFK')) 0 drop table #BaseInfoFK
select a.* into #BaseInfoFK from (select * from table)a#BaseInfoFK是臨時(shí)表的名一定要加#
一、系統(tǒng)表空間
在 MySQL 數(shù)據(jù)目錄下有一個(gè)名為 ibdata1 的文件,可以保存一張或者多張表。
923275 12M -rw-r----- 1 mysql mysql 12M 3月 18 10:42 ibdata1
這個(gè)文件就是 MySQL 的系統(tǒng)表空間文件,默認(rèn)為 1 個(gè),可以有多個(gè),只需要在配置文件 my.cnf 里面這樣定義即可。
innodb_data_file_path=ibdata1:200M;ibdata2:200M:autoextend:max:800M系統(tǒng)表空間不僅可以是文件系統(tǒng)組成的文件,也可以是非文件系統(tǒng)組成的磁盤塊,比如裸設(shè)備,定義也很簡(jiǎn)單innodb_data_file_path=/dev/nvme0n1p1:3Gnewraw;/dev/nvme0n1p2:2Gnewraw
系統(tǒng)表空間里都有些啥內(nèi)容?
具體內(nèi)容包括:double writer buffer、 change buffer、數(shù)據(jù)字典(MySQL 8.0 之前)、表數(shù)據(jù)、表索引。
那 MySQL 為什么現(xiàn)在主流版本默認(rèn)都不是系統(tǒng)表空間?
究其原因,系統(tǒng)表空間有三個(gè)最大的缺點(diǎn):原因 1:無法做到自動(dòng)收縮磁盤空間,造成很大的空間浪費(fèi)。即使它包含的表都被刪掉,這部分空間也不會(huì)自動(dòng)釋放。
二、單表空間
單表空間不同于系統(tǒng)表空間,每個(gè)表空間和表是一一對(duì)應(yīng)的關(guān)系,每張表都有自己的表空間。具體在磁盤上表現(xiàn)為后綴為 .ibd 的文件。比如表 t1,對(duì)應(yīng)的表空間文件為 t1.ibd917107 96K -rw-r----- 1 mysql mysql 96K 3月 18 16:13 t1.ibd
單表空間如何應(yīng)用到具體的表呢?
有兩種方式:方式 1:在配置文件中開啟。在配置文件中開啟單表空間設(shè)置參數(shù) innodb_filer_per_table,這樣默認(rèn)對(duì)當(dāng)前庫(kù)下所有表開啟單表空間。innodb_file_per_table=1另外也可以直接建表時(shí)指定單表空間mysql create table t1 (id int, r1 char(36)) tablespace innodb_file_per_table;
Query OK, 0 rows affected (0.04 sec)
單表空間除了解決之前說的系統(tǒng)表空間的幾個(gè)缺點(diǎn)外,還有其他的優(yōu)點(diǎn),詳細(xì)如下:
1. truncate table 操作比其他的任何表空間都快;
2. 可以把不同的表按照使用場(chǎng)景指定在不同的磁盤目錄;
比如日志表放在慢點(diǎn)的磁盤,把需要經(jīng)常隨機(jī)讀的表放在 SSD 上等。
mysql create table ytt_dedicated (id int) data directory = '/var/lib/mysql-files';
Query OK, 0 rows affected (0.04 sec)3. 可以用 optimize table 來收縮或者重建經(jīng)常增刪改查的表。一般過程是這樣的:建立和原來表一樣的表結(jié)構(gòu)和數(shù)據(jù)文件,把真實(shí)數(shù)據(jù)復(fù)制到臨時(shí)文件,再刪掉原始表定義和數(shù)據(jù)文件,最后把臨時(shí)文件的名字改為和原始表一樣的。
三、通用表空間
通用表空間先是出現(xiàn)在 MySQL Cluster 里,也就是 NDB 引擎。從 MySQL 5.7 引入到 InnoDB 引擎。通用表空間和系統(tǒng)表空間一樣,也是共享表空間。每個(gè)表空間可以包含一張或者多張表,也就是說通用表空間和表之間是一對(duì)多的關(guān)系。