国产精品久久久久久久,女人的诱惑,亚洲中文无码亚洲人成软件,亚洲尺码一区二区三区,

  • 微信
    咨詢
    微信在線咨詢 服務時間:9:00-18:00
    縱橫數據官方微信 使用微信掃一掃
    馬上在線溝通
  • 業務
    咨詢

    QQ在線咨詢 服務時間:9:00-18:00

    選擇下列產品馬上在線溝通

    縱橫售前-老古
    QQ:519082853 售前電話:18950029581
    縱橫售前-江夏
    QQ:576791973 售前電話:19906048602
    縱橫售前-小李
    QQ:3494196421 售前電話:19906048601
    縱橫售前-小智
    QQ:2732502176 售前電話:17750597339
    縱橫售前-燕子
    QQ:609863413 售前電話:17750597993
    縱橫值班售后
    QQ:407474592 售后電話:400-1886560
    縱橫財務
    QQ:568149701 售后電話:18965139141

    售前咨詢熱線:

    400-188-6560

    業務姚經理:18950029581

  • 關注

    關于縱橫數據 更多優惠活動等您來拿!
    縱橫數據官方微信 掃一掃關注官方微信
  • 關閉
  • 頂部
  • 您所在的位置 : 首頁 > 新聞公告 > MySQL數據庫快問快答

    MySQL數據庫快問快答

    1. UNION ALL 與 UNION 的區別

    2. TRUNCATE 與 DELETE 區別

    一般情景下,TRUNCATE性能比DELETE好一點。

    3. TIMESTAMP 與 DATETIME 的區別

    相同點

    TIMESTAMP 列的顯示格式與 DATETIME 列相同。顯示列寬固定在19字符,并且格式為YYYY-MM-DD HH:MM:SS。

    不同點

    TIMESTAMP

    DATETIME

    4. 什么是聯合索引

    兩個或更多個列上的索引被稱作聯合索引,聯合索引又叫復合索引。

    5. 為什么要使用聯合索引

    6. MySQL 聯合索引最左匹配原則

    7. 什么是聚集和非聚集索引

    8. 什么是覆蓋索引

    覆蓋索引(covering index)指一個查詢語句的執行只用從索引頁中就能夠取得(如果不是聚集索引,葉子節點存儲的是主鍵+列值,最終還是要回表,也就是要通過主鍵再查找一次),避免了查到索引后,再做回表操作,減少I/O提高效率。

    可以結合第10個問題更容易理解。

    9. 什么是前綴索引

    前綴索引就是對文本的前幾個字符(具體是幾個字符在創建索引時指定)創建索引,這樣創建起來的索引更小。但是MySQL不能在ORDER BY或GROUP BY中使用前綴索引,也不能把它們用作覆蓋索引。

    創建前綴索引的語法:

    ALTER TABLE table_name ADD
    KEY(column_name(prefix_length))

    10. InnoDB 與 MyISAM 索引存儲結構的區別

    簡單的說:

    11. 為什么盡量選擇單調遞增數值類型的主鍵

    InnoDB中數據記錄本身被存于主索引(B+樹)的葉子節點上。這就要求同一個葉子節點內(大小為一個內存頁或磁盤頁)的各條數據記錄按主鍵順序存放,因此每當有一條新的記錄插入時,MySQL會根據其主鍵將其插入適當的結點和位置,如果頁面達到裝載因子(InnoDB默認為15/16),則開辟一個新的頁。

    如果使用自增主鍵,那么每次插入新的記錄,記錄就會順序添加到當前索引結點的后續位置,當一頁寫滿,就會自動開辟一個新的頁,這樣就會形成一個緊湊的索引結構,近似順序填滿。由于每次插入時也不需要移動已有數據,因此效率很高,也不會增加很多開銷在維護索引上。

    如果使用非自增主鍵,由于每次插入主鍵的值近似于隨機,因此每次新紀錄都要被插入到現有索引頁的中間某個位置,此時MySQL不得不為了將新記錄查到合適位置而移動元素,甚至目標頁可能已經被回寫到磁盤上而從緩存中清掉,此時又要從磁盤上讀回來,這增加了很多開銷,同時頻繁的移動、分頁操作造成了大量的碎片,得到了不夠緊湊的索引結構,后續不得不通過 OPTIMIZE TABLE 來重建表并優化填充頁面。

    簡單的說:

    索引樹只能定位到某一頁,每一頁內的插入還是需要通過比較、移動插入的。所以有序主鍵可以提升插入效率。

    12. 建表時,int 后面的長度的意義

    int占多少個字節,已經是固定的了,長度代表了顯示的最大寬度。如果不夠會用0在左邊填充,但必須搭配zerofill使用。也就是說,int的長度并不影響數據的存儲精度,長度只和顯示有關。

    13. SHOW INDEX 結果字段代表什么意思

    Table:

    Non_unique:

    Key_name:

    Seq_in_index:

    Column_name:

    Collation:

    Cardinality:

    Sub_part:

    Null:

    Index_type:

    1. 如何解決like’%字符串%’時索引失效?

    LIKE問題:like 以通配符開頭 (‘%abc…’),mysql索引失效會變成全表掃描的操作。

    解決辦法:

    使用覆蓋索引,可以由 ALL 變為INDEX,為啥呢?覆蓋索引之后就能使用使用索引進行全表掃描。這里要注意一下,使用符合索引的時候,命中一個字段就可以,不用全部命中。

    15. MySQL高效分頁

    存在SQL:SELECT * FROM ttl_product_info ORDER BY id LIMIT N,M。其中 LIMIT N,M 存在的問題最大:取出N+M行,丟棄前N行,返回 N ~ N+M 行的記錄,如果N值非常大,效率極差(表記錄1500w,N=10000000,M=30 需要9秒)。

    解決辦法:SQL:SELECT id FROM ttl_product_info WHERE id > N LIMIT M,id 列是索引列,id > N屬于 range 級別,效率自然高,然后從位置開始取30條記錄,效率極高(表記錄1500w,N=10000000,M=30,需要0.9毫秒)。

    當然想要實現上述效果的前提是:


    最新推薦


    微信公眾帳號
    關注我們的微信