MySQL基礎語句

來源:互聯網
上載者:User

標籤:統計   col   join   切換   檔案名稱   忽略   儲存   osi   清空   

  • 查看當前MYSQL支援的儲存引擎
    show engines;
  • 查看某一使用者的許可權
    show grants for UserName;
  • 如何得知當前Binary Log檔案和Position值
    show master status;
  • 用什麼命令切換Binary Log
    flush logs;
  • 用什麼命令修複MyISAM表
    repaire table TabName;
  • 用什麼命令整理表資料檔案的片段
    optimize table TabName;
  • 如何得到TabA表的建表語句
    show create table TabA;
  • 建立TabB表,完整拷貝TabA表的結構和索引,不要資料
    create table TabB like TabA;
  • 為TabA表新增欄位ColA,精度無偏差的小數型,10位整數,2位小數,加索引
    alter table TabA add ColA decimal(12,2), add key (ColA);
  • 如何清空TabB表的資料
    truncate table TabB;
  • 如何不進入mysql用戶端,執行一條SQL命令,帳號User,密碼Passwd,庫名DBName,SQL為"select sysdate();"
    mysql -uUser -pPasswd -D DBName -e "select sysdate();"
  • 如何從slow log中分析出所有的select語句,按次數以倒序輸出前20條,日誌名為slow_log.file
    mysqldumpslow -g ‘select‘ -s c -r slow_log.file
  • 如何從BinLog中分析出時間從"2017-10-27 13:00:00"到"2017-10-27 18:00:00"的anjuke庫的SQL語句,日誌名為bin_log.file
    mysqlbinlog -d anjuke --start-datetime=‘2017-10-27 13:00:00‘ --stop-datetime=‘2017-10-27 18:00:00‘ bin_log.file
  • 建立使用者,使用者名稱為iamdba,密碼為mypasswd,訪問來源10.11.8.X,即8段IP都允許,對anjuke庫所有表擁有“增刪改查”許可權
    grant insert,delete,update,select on anjuke.* to [email protected]‘10.10.8.%‘ identified by ‘mypasswd‘;
  • 如何執行一個SQL檔案,帳號User,密碼Passwd,庫名DBName,SQL檔案名稱為sql.file
    mysql -uUser -pPasswd -D DBName
  • 用select方式匯出TabA的所有資料到/tmp/TabA.txt檔案
    select * from TabA into outfile ‘/tmp/TabA.txt‘;
  • 匯入TabA.txt資料到TabB表,如主鍵或唯一鍵衝突,覆蓋tabB表中的資料
    load data [local] infile ‘/tmp/TabA.txt‘ replace into table TabB;
  • 用mysqldump命令匯出anjuke庫裡的TabB表中滿足“ColA > 100”的資料到TabB.sql檔案,不要匯出建表語句,帳號User,密碼Passwd
    mysqldump -uUser -pPasswd --no-create-info anjuke TabB -w "ColA > 100" >TabB.sql
    PS: --no-create-info 也可以寫為 -t
  • 切換同步到master 10.11.8.11,連接埠為3307,使用者名稱repl,密碼為passwd,起點BinLog為db-master.000001,位置123456
    change master to master_host=‘10.11.8.11‘, master_port=3307, master_user=‘repl‘, master_password=‘passwd‘, master_log_file=‘db-master.000001‘, master_log_pos=123456;
  • 啟動slave的sql進程,並在同步到master的db-master.000003檔案123456位置上停止
    start slave sql_thread util master_log_file=‘db-master.000003‘, master_log_pos=123456;
  • 建一個滿足以下五種條件的最優索引
    where a=? and b=? and c=?
    where a=? and b>? and c=?
    where a=? and b in (?) and c=?
    where a=? and c=? order by b
    where a=? order by c,b
    建立順序為(a,c,b)的複合索引
  • 有二個複合索引(a,b)和(c,d),以下語句會怎樣使用索引?可以做怎樣的最佳化?
    select from Tab where (a=? and b=?) or (c=? and d=?)
    根據MYSQL的機制,只會使用到一個篩選效果好的複合索引,可以做如下最佳化
    select
    from Tab where a=? and b=?
    union
    select * from Tab where c=? and d=?
  • 如何統計檔案a.txt有多少非空行?
    grep -c ‘^..*$‘ a.txt

    grep -v ‘^$‘ a.txt | wc -l
  • 檔案b.txt,每行以“:”符分成5列,如“1:apple:3:2017-10-25:very good”,如何得到所有行第三列的總合值
    awk ‘BEGIN {FS=":"; s=0} {s+=$3} END {print s}‘ b.txt
  • 截取檔案c.txt的第60至480行記錄,忽略大小寫,統計出重複次數最多的那條記錄,及重複次數
    sed -n ‘60,480‘p c.txt | sort | uniq -i -c | sort -rn | head -n 1
    二、簡答題 5x5
  • MyISAM和InnoDB各有哪些特性?分別適用在怎樣的情境下?
    MyISAM,表鎖,不支援事務,表損壞率較高,分為MYD資料檔案和MYI索引二個檔案,讀寫並發不如InnoDB,適用於insert較多的情境,且支援直接複製檔案,用以備份資料
    InnoDB,行鎖,支援事務,crash後具有recove機制,只有ibd檔案,分為資料區和索引區,有較好的讀寫並發能力,但做count()運算時相當消耗CPU
  • MySQL原生支援的備份方式有哪些,並說出其優缺點?
    (1) 直接拷貝資料檔案,必須是MyISAM表,且使用flush tables with read lock;語句,優點是簡單方便,缺點是須要鎖寫,且只能在同版本的MySQL上恢複使用
    (2) mysqldump,匯出的是SQL語句,所以可以跨版本恢複,但是需要匯入資料和重建索引,恢複用時會較長,如果是MyISAM表,同樣需要鎖表,如果是InnoDB表,可以使用--single-transaction參數避免此問題
  • 在建立和使用索引時,有哪些要注意的地方,有什麼規則?
    避免索引過多,會影響寫效能
    給篩選效果低的欄位加索引,幾乎無效,如性別、狀態標誌等
    每條查詢執行時,只會使用一個索引,有需要時應該建立複合索引
    複合索引使用時遵守“從左至右”原則,嚴禁左百分比符號
    不要在索引欄位上有運算操作和使用函數,將無法使用索引
  • 如何分析一條SQL語句的執行效能,關注哪些資訊?
    不論效能如何,不要有子查詢和嵌套SQL,盡量不要有join查詢
    使用explain命令,觀察type列,可以知道是否是全表掃描,和索引的使用形式,觀察key可以知道使用了哪個索引,觀察key_len可以知道索引是否使用完成,觀察rows可以知道掃描的行數是否過多,觀察extra可以知道是否使用了暫存資料表和進行了額外的排序操作
  • MySQL通過什麼機制來控制存取權限?
    mysql庫中,從user表到host表和db表,再到tables_priv表和colums_priv表
  • MySQL基礎語句

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.