成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

PHP面試之三:MySQL數(shù)據(jù)庫(kù)

DrizzleX / 1533人閱讀

摘要:基礎(chǔ)考點(diǎn)數(shù)據(jù)類型整型小數(shù)型字符串型時(shí)間日期型枚舉類型在定義整型數(shù)據(jù)類型時(shí),經(jīng)??吹嚼ㄌ?hào)里指定的是顯示長(zhǎng)度,不限制值合法范圍,這個(gè)顯示長(zhǎng)度要配合這個(gè)屬性才有意義。

基礎(chǔ)考點(diǎn)

MySQL 數(shù)據(jù)類型

整型:tinyint、smallint、mediumint、int、bigint
小數(shù)型:float、double、decimal
字符串型:varchar、char、text、blob
時(shí)間日期型:time、date、datetime、timestamp
枚舉類型:enum

在定義整型數(shù)據(jù)類型時(shí),經(jīng)??吹?int(4) 括號(hào)里指定的是顯示長(zhǎng)度,不限制值合法范圍,這個(gè)顯示長(zhǎng)度要配合zerofill這個(gè)屬性才有意義。


1、 VARCHARCHAR 更節(jié)約空間
2、 CHARVARCHAR 存儲(chǔ)效率更好
3、 VARCHARCHAR 的長(zhǎng)度,如果存儲(chǔ)內(nèi)容超出指定長(zhǎng)度,會(huì)被截?cái)?br>4、 存儲(chǔ)經(jīng)常改變的數(shù)據(jù),CHAR 不容易產(chǎn)生碎片


盡量避免使用 BLOB/TEXT 類型,導(dǎo)致嚴(yán)重的性能開銷


1、 有時(shí)可以使用枚舉類型代替字符串類型
2、 枚舉類型內(nèi)部存儲(chǔ)成整型(節(jié)省空間)
3、 避免使用數(shù)字作為 enum枚舉 的常量,易混亂


1、 盡量使用 TIMESTAMP 來(lái)保存時(shí)間日期數(shù)據(jù)
2、 如果需要存儲(chǔ)微秒, 可以使用 BIGINT 類型

MySQL 基礎(chǔ)操作

連接與關(guān)閉:mysql -u -p -h -P

MySQL 存儲(chǔ)引擎(數(shù)據(jù)表)

MyISAM與InnoDB的區(qū)別

1、 InnoDB支持事務(wù),MyISAM不支持事務(wù)
2、 InnoDB支持行級(jí)鎖,MyISAM支持表鎖
3、 InnoDB數(shù)據(jù)存儲(chǔ)在共享表空間,MyISAM數(shù)據(jù)存儲(chǔ)在MyD文件和MyI文件
4、 InnoDB支持奔潰后的安全恢復(fù),MyISAM不支持
5、 InnoDB對(duì)主鍵查詢的性能高于其他存儲(chǔ)引擎
6、 MyISAM擁有全文索引、壓縮、空間函數(shù)

MySQL 鎖機(jī)制

由于并發(fā)操作的產(chǎn)生,所以需要使用鎖進(jìn)行并發(fā)控制
鎖分為2種:共享鎖排他鎖,就是讀鎖寫鎖

共享鎖(讀鎖),不堵塞,多個(gè)用戶可以同時(shí)讀同一資源,互不干擾

排他鎖(寫鎖),一個(gè)寫鎖會(huì)阻塞其他讀鎖和寫鎖,這樣只允許一個(gè)人進(jìn)行寫入操作,防止其他人進(jìn)行讀取或者寫入

注意:InnoDB支持行級(jí)鎖,MyISAM支持表鎖

MySQL 事務(wù)處理

注意:使用事務(wù)的前提是 表必須是InnoDB引擎

安全性考點(diǎn)

SQL注入

使用 預(yù)處理 來(lái)防止SQL注入

特殊字符轉(zhuǎn)義

寫入數(shù)據(jù)庫(kù)的數(shù)據(jù)必須經(jīng)過(guò)特殊字符轉(zhuǎn)義操作,此操作在應(yīng)用層進(jìn)行

錯(cuò)誤記錄

當(dāng)發(fā)生查詢錯(cuò)誤時(shí),不能把錯(cuò)誤信息返回給用戶,把錯(cuò)誤記錄到日志

索引考察點(diǎn)

使用索引的優(yōu)缺點(diǎn)

優(yōu)點(diǎn):
1、減少服務(wù)器掃描的數(shù)據(jù)量
2、避免排序和臨時(shí)表
3、隨機(jī)I/O變順序I/O
4、提高查詢速度

缺點(diǎn):
1、降低寫的速度
2、占用磁盤

索引使用場(chǎng)景

非常小的表(1~1000) 不使用索引
中型(1000~100W)   使用索引
大型(100W~1000W)  使用索引
超大(1000W以上)   索引 + 分區(qū)技術(shù)

索引類型

1、普通索引
2、唯一索引 (在普通索引的基礎(chǔ)上,加上唯一約束)
3、主鍵索引 (在唯一索引的基礎(chǔ)上,加上不能為Null)
4、組合索引
5、全文索引 (少用,只適合英文)
6、外鍵索引 (少用,使用業(yè)務(wù)邏輯進(jìn)行數(shù)據(jù)關(guān)聯(lián))

索引創(chuàng)建原則

1、最適合索引的列是出現(xiàn)在where子句中的列,或連接子句中的列,而不是出現(xiàn)在SELECT關(guān)鍵字后的列
2、索引列基數(shù)越大,效果越好
3、對(duì)字符串進(jìn)行索引,應(yīng)該制定一個(gè)前綴長(zhǎng)度,可以節(jié)省大量索引空間
4、根據(jù)情況創(chuàng)建復(fù)合索引,復(fù)合索引能提高查詢效率
5、避免創(chuàng)建過(guò)多的索引
6、主鍵盡量選擇較短的數(shù)據(jù)類型

索引注意事項(xiàng)

1、復(fù)合索引遵循前綴原則(重要,按順序)
2、like查詢,%不能在前面(在前面索引會(huì)失效,如果要在前面請(qǐng)使用第三方全文索引)
3、列is Null也是可以使用索引
4、如果OR條件想用到索引,必須or前后的字段都需要是索引字段
5、列是字符串類型時(shí),查詢時(shí)一定要使用引號(hào)(單或雙),索引才會(huì)生效
SQL語(yǔ)句關(guān)聯(lián)考察點(diǎn)

關(guān)聯(lián)操作

1、關(guān)聯(lián)更新
2、關(guān)聯(lián)查詢

連接方式

1、交叉連接 Cross join (無(wú)條件)
    
    select * from A CROSS JOIN B CROSS JOIN C;

2、內(nèi)連接 INNER JOIN (有條件的交叉連接) 簡(jiǎn)寫 JOIN

    select * from A INNER JOIN B INNER JOIN C ON A.id = B.id;
    select * from A,B where A.id = B.id;
    select * from A T1 INNER JOIN A T2 ON T1.id = T2.id;
    
3、外連接
    
    左外連接 LEFT JOIN
    右外連接 RIGHT JOIN
    
4、聯(lián)合連接 (UNION重復(fù)的合并,UNION ALL重復(fù)的不合并)

    SELECT * FROM position UNION SELECT * FROM team; 
    SELECT * FROM position UNION ALL SELECT * FROM team; 
    **UNION ALL性能高于UNION**
    
5、全連接(MySQL不支持)
MySQL高擴(kuò)展與高可用

分庫(kù)

分表(水平與垂直)

讀寫分離

主從復(fù)制

負(fù)載均衡

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/25984.html

相關(guān)文章

  • 面試系列】之三:關(guān)于閉包和遞歸

    摘要:之三關(guān)于閉包和遞歸開篇這一期本來(lái)是打算寫閉包的,但是無(wú)意中看到高級(jí)程序設(shè)計(jì)中閉包的前一章就是遞歸。閉包練習(xí)題這個(gè)板塊會(huì)實(shí)時(shí)補(bǔ)充的關(guān)于遞歸其實(shí)說(shuō)到遞歸,主要就是要說(shuō)這個(gè)的用法,其實(shí)主要就是調(diào)用自己的外圍函數(shù),并且可以傳參。 之三:關(guān)于閉包和遞歸 1. 開篇 這一期本來(lái)是打算寫閉包的,但是無(wú)意中看到《JavaScript高級(jí)程序設(shè)計(jì)》中閉包的前一章就是遞歸。所以拿出來(lái)一起講一下吧! 我覺得...

    2501207950 評(píng)論0 收藏0
  • MySQL學(xué)習(xí)筆記之三排序和過(guò)濾

    摘要:張三李四張三北京海底市南區(qū)李四北京海底市南區(qū)操作符的優(yōu)勢(shì)使用長(zhǎng)的合法選項(xiàng)清單時(shí)候操作符比較直觀。支持對(duì)子句取反。張三李四趙蕓上海市徐匯區(qū)王麗廣州廈門我的網(wǎng)站 在數(shù)據(jù)庫(kù)的使用中排序和過(guò)濾也是經(jīng)常的操作 排序檢索數(shù)據(jù),關(guān)鍵字order 1.按照某個(gè)列名排序 普通排序 mysql> select * from user; +----+--------+-----+--------------...

    legendmohe 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<