Mysql基本使用原理和索引型別

2021-07-23 03:03:43 字數 2479 閱讀 2456

1.建立使用者

建立使用者的三種方法

(1)insert into mysql.user(host,user,password)  values('localhost','hadoop',password('hadoop'));

(2)create user 'hadoop'@'localhost' identified by 'hadoop'

2.給使用者賦予可以訪問某個db的許可權

--賦予 查詢,插入,刪除,更新的許可權

grant select,insert,delete,update on sparkdb.* to 'hadoop'@'%' identified by "hadoop"

--賦予管理員的許可權

grant all privileges on *.* to hadoop@localhost identified by "hadoop" with grant option ;

//賦予所有的許可權

grant all privileges  on sparkdb.* to 'hadoop'@'%' identified by "hadoop";

3.主鍵約束問題

(1).unique key要求列唯一,但不包括null欄位,也就是約束的列可以為空且僅要求列中的值除null之外不重複即可;

(2).primary key也要求列唯一,同時又限制欄位的值不能為null,相當於primary key=unique + not null。 

建立乙個primary key和unique key都會相應的建立乙個unique index。

4.mysql 中coalesce相比nvl優點是,coalesce中引數可以有多個,而nvl()中引數就只有兩個。

5.改變字段長度

alter

table tbl_content_shop_infmodify

column shop_descvarchar(1024);

6. 匯出表結構和資料

mysqldump -uhadoop -phadoop -h127.0.0.1 -p3306 --routines --default-character-set=utf8 --tables hadoopdb brand> brand.sql

7.匯出某個庫的所以表結構(不包含資料)

mysqldump -h localhost -uhadoop -phadoop  -d sparkdb > dump.sql

8.dump檔案只匯出資料

mysqldump -uhadoop -phadoop -h127.0.0.1 -p3306 -t hadoopdb test> test.sql

mysql 索引

索引是一種特殊的檔案(innodb資料表上的索引是表空間的乙個組成部分),它們包含著對資料表裡所有記錄的引用指標。

索引分為聚簇索引和非聚簇索引兩種,聚簇索引是按照資料存放的物理位置為順序的,而非聚簇索引就不一樣了;聚簇索引能提高多行檢索的速度,而非聚簇索引對於單行的檢索很快。

索引的缺點:

1.雖然索引大大提高了查詢速度,同時卻會降低更新表的速度,如對表進行insert、update和delete。因為更新表時,mysql不僅要儲存資料,還要儲存一下索引檔案

2.建立索引會占用磁碟空間的索引檔案。一般情況這個問題不太嚴重,但如果你在乙個大表上建立了多種組合索引,索引檔案的會膨脹很快。

索引的優缺點?

優點:1.通過建立唯一性索引,可以保證資料庫表中每一行資料的唯一性。 

2.可以大大加快資料的檢索速度,這也是建立索引的最主要的原因。 

3.可以加速表和表之間的連線,特別是在實現資料的參考完整性方面特別有意義。 

4.在使用分組和排序子句進行資料檢索時,同樣可以顯著減少查詢中分組和排序的時間。 

5.通過使用索引,可以在查詢的過程中,使用優化隱藏器,提高系統的效能。

缺點:1.建立索引和維護索引要耗費時間,這種時間隨著資料量的增加而增加。 

2.索引需要佔物理空間,除了資料表佔資料空間之外,每乙個索引還要佔一定的物理空間,如果要建立聚集索引那麼需要的空間就會更大。 

3.當對表中的資料進行增加、刪除和修改的時候,索引也要動態的維護,這樣就降低了資料的維護速度。

4.mysql設定不區分大小寫

原來linux下的mysql預設是區分表名大小寫的,通過如下設定,可以讓mysql不區分表名大小寫:

(1)用root登入,修改 /etc/my.cnf;

(2)在[mysqld]節點下,加入一行: lower_case_table_names=1

(3)重啟mysql即可;

其中 lower_case_table_names=1 引數預設地在 windows 中這個選項為 1 ,在 unix 中為 0,因此在window中不會遇到的問題,一旦一直到linux就會出問題的原因

索引型別:

表中的聚簇索引(clustered index )就是一級索引,除此之外,表上的其他非聚簇索引都是二級索引,又叫輔助索引(secondary indexes)。

MySQL索引的基本使用

1.了解索引及其使用 2.熟悉常見的索引種類 3.掌握索引的基本使用 重點 4.掌握索引的實戰經驗 索引是一種特殊的資料結構,類似於圖書的目錄,他能夠極大地提公升資料庫查詢效率。如果沒有索引,在查詢資料時必須掃瞄表中的所有記錄才能找出符合條件的記錄,這種 全表掃瞄的查詢效率非常低 舉例 樓層索引,字...

mysql索引型別和方式 mysql索引型別和方式

索引 資料庫的索引就像一本書的目錄,能夠加快資料庫的查詢速度。mysql索引有四種primary index unique fulltext,其中primary index unique是一類,fulltext是一類。這四種都是單列索引,也就是他們都是作用於單個一列,所以也稱單列索引 但是所以乙個索...

MySQL索引原理之索引原理

索引定義 是儲存引擎用於快速查詢記錄的一種資料結構。需要額外開闢空間和資料維護工作。索引是物理資料頁儲存,在資料檔案中 innodb,ibd檔案 利用資料頁 page 儲存。索引可以加快檢索速度,但是同時也會降低增刪改操作速度,索引維護需要代價。索引涉及的理論知識 二分查詢法 hash和b tree...