mysql 整理 是什麼意思 MySQL問答整理

2021-10-18 10:16:31 字數 4046 閱讀 8639

1.mysql中有哪些不同的**?

myisam: 基於iasm**、可以被壓縮,支援全文搜尋,事務不安全,而且也不支援外來鍵。如果事務回滾將會造成不完全回滾,從而不具備原子性。所以假如忽略事務以及訪問併發性的話,並且需要執行大量的select檢索語句的話,myisam將是最好的選擇

heap:是mysql中訪問資料最快的表。這是因為他們使用儲存在動態記憶體中的乙個雜湊索引,不過如果mysql或伺服器崩潰,這些記憶體資料將會丟失

merge:實際上是又乙個myisam表的集合,合併而成的乙個表,主要是為了效率的考慮,不僅僅可以提高速度、搜尋效率、修復效率而且還節省了磁碟空間。

innodb:事務安全、支援外來鍵。如果需要乙個事務安全的儲存引擎,建議使用它。如果你的資料執行大量的insert或update,出於效能方面的考慮,同樣應該使用innodb表。對於支援事務的innodb型別的表來說,影響速度的主要原因是autocommit預設設定是開啟的,而且程式沒有顯式呼叫begin開始事務,導致每插入一條都自動提交,嚴重影響了速度。可以在執行sql前呼叫begin,多條sql形成乙個事物(即使autocommit開啟也可以),將大大提高效能

isam:簡稱為索引順序訪問方法,由ibm開發的,用於在磁帶等輔助儲存系統上儲存和檢索資料

2.自增id

一張id主鍵自增的表,當insert了10條記錄之後,刪除了第8、9、10條記錄,再把mysql重啟,再insert一條記錄,這條記錄的id是11還是8

如表型別是myisam:11。因其把自增主鍵id記錄到檔案中,重啟id不會丟失。

如表型別是innodb:8。。因其把自增主鍵id記錄到記憶體中,重啟會導致丟失。

3.heap特點

不允許**blob或**text欄位

只允許使用=和<=>操作符來搜尋記錄(不允許、<=或》=)

heap表不支援auto_increment

索引不可為null

4.如何控制heap的最大值

設定max_heap_table_size

5.myisam static和myisam dynamic區別

在myisam static上的所有欄位有固定寬度。動態myisam表將具有像text,blob等字段,以適應不同長度的資料型別。

myisam static在受損情況下更容易恢復。

6.blob和text區別

blob是乙個二進位制物件,可以容納可變數量的資料。有四種型別的blob:tinyblob,blob,mediumblob,longblob

它們只能在所能容納價值的最大長度上有所不同。

text是乙個不區分大小寫的blob。四種text型別:tinytext,text,mediumtext,longtext

它們對應於四種blob型別,並具有相同的最大長度和儲存要求。

blob和text型別之間的唯一區別在於對blob值進行排序和比較時區分大小寫,對text值不區分大小寫。

7.mysql中有哪幾種鎖

表級鎖:開銷小,加鎖快,不會出現死鎖。鎖定粒度大,發生鎖衝突的概率最高,併發量最低

行級鎖:開銷大,加鎖慢,會出現死鎖。鎖力度小,發生鎖衝突的概率小,併發度最高

myisam支援表鎖,innodb支援表鎖和行鎖,預設為行鎖

8.now()和current_date()有什麼區別?

9.mysql查詢是否區分大小寫?

不區分10. 在mysql中enum的用法?

create tabletest4 (

idbigint unsigned primary keyauto_increment,

brandvarchar(255) not null,

color enum('red','green','blue')

) engine= innodb;

11.mysql優勢?

mysql是開源軟體,隨時可用,無需付費。

mysql是可攜式的

帶有命令提示符的gui。

使用mysql查詢瀏覽器支援管理

12.如何區分float和double

浮點數以8位精度儲存在float中,並且有四個位元組。

浮點數儲存在double中,精度為18位,有八個位元組。

13.區分char_length和length?

char_length是字元數,而length是位元組數。latin字元的這兩個資料是相同的,但是對於unicode和其他編碼,它們是不同的。

14.innodb支援的四種事務隔離級別名稱,以及逐級之間的區別

read uncommited :讀到未提交資料

read committed:髒讀,不可重複讀

repeatable read:可重讀(預設)

serializable :序列事物

髒讀 :乙個事務讀取到另一事務未提交的更新資料 不可重複讀 : 在同一事務中,多次讀取同一資料返回的結果有所不同, 換句話說, 後續讀取可以讀到另一事務已提交的更新資料. 相反, 「可重複讀」在同一事務中多次讀取資料時, 能夠保證所讀資料一樣, 也就是後續讀取不能讀到另一事務已提交的更新資料。

幻讀 :乙個事務讀到另乙個事務已提交的insert資料

15.列的字串型別

setblob

enum

char

text

varchar

16.federated表是什麼?

允許訪問位於其他伺服器資料庫上的表。

17.如果乙個表有一列定義為timestamp,將發生什麼?

每當行被更改時,時間戳字段將獲取當前時間戳。

18.列設定為auto increment時,如果在表中達到最大值,會發生什麼情況?

停止遞增,任何進一步的插入都將產生錯誤,因為金鑰已被使用。

19.怎樣才能找出最後一次插入時分配了哪個自動增量?

last_insert_id()將返回由auto_increment分配的最後乙個值,並且不需要指定表名稱

20.怎麼看到為**定義的所有索引?

show index from ;

21.如何在unix和mysql時間戳之間進行轉換

unix_timestamp是從mysql時間戳轉換為unix時間戳的命令

from_unixtime是從unix時間戳轉換為mysql時間戳的命令

舉例:select unix_timestamp('2018-09-22 17:43:16') /*1537609396*/

select from_unixtime(1537609396) /*2018-09-22 17:43:16*/

22.如何在mysql中執行批處理模式

把你想要執行的命令放在乙個檔案中,然後告訴mysql從檔案讀取它的輸入

shell> mysql < batch-file

23.mysql表中允許有多少個triggers?

在mysql表中允許有六個觸發器,如下:

before insert

after insert

before update

after update

before delete

after delete

24.mysql支援事務嗎?

在 mysql 中只有使用了 innodb 資料庫引擎的資料庫或表才支援事務。

事務處理可以用來維護資料庫的完整性,保證成批的 sql 語句要麼全部執行,要麼全部不執行。

事務用來管理 insert,update,delete 語句

25.mysql資料表在什麼情況下容易損壞

伺服器突然斷電導致資料檔案損壞。

強制關機,沒有先關閉mysql 服務等。

26.mysql有關許可權的表都有哪幾個

mysql伺服器通過許可權表來控制使用者對資料庫的訪問,許可權表存放在mysql資料庫裡,由mysql_install_db指令碼初始化。這些許可權表分別user,db,table_priv,columns_priv和host。

參考

uma是什麼意思 UMA是什麼意思?

展開全部 uma 不明生物 是636f707962616964757a686964616f31333431376537動畫 進化戰記 betterman 中的一類人造怪物的統稱,是生命工學食料研究所 b.p.l.所長梅崎博士製造出來 協助他利用阿尼瑪斯之花 大量製造蛋白質 具有驚人攻擊性的怪物。阿拉...

是什麼意思?

meta是html中的元標籤,其中包含了對應html的相關資訊,客戶端瀏覽器或伺服器端的程式會根據這些資訊進行處理。http equiv類似於http的頭部協議,它回應給瀏覽器一些有用的資訊,以幫助正確和精確地顯示網頁內容。content 內容型別 重要!這個網頁的格式是文字的,網頁模式 chars...

In 是什麼意思

函式引數型別前 in 代表什麼 在visual c 中屬於sal批註,是為了編譯系統在分析 時發現缺陷用的 表示是乙個輸入引數。可以定義乙個 in 的巨集,這個巨集什麼都不做,就是形如這樣的。define in void fun int in x 等同於 void fun int x 但是他給出了引...