æ°æ®é¡µ
对äºInnodbè¿ä¸ªå¼ææ¥è¯´ï¼å®æ¯ææ°æ®åºåç硬ççãå¯ä»¥æ³è±¡ä¸ä¸è°ç¨çåºæ¯ï¼å䏿¡æ¥è¯¢SQLï¼ç¶åç¹å»å车æé®ãè¿æ¶åè¿æ¡SQLé¦å ä¼å°è¾¾æ°æ®åºçæå¡å±ï¼å¨è¿ä¸å±ä¼å¯¹è¿æ¡SQLè¿è¡è¯æ³åæï¼è¯ä¹åæï¼è¯å¥ä¼åãç¶åä¼è°ç¨æ°æ®åºå¼æï¼ä»¥innodb为ä¾ï¼æä¾çæ¥å£ï¼æ¥å£ä¼å»æºå¨ç硬çä¸ææ°æ®å è½½çå åï¼ç¶åå¨å åä¸è¿è¡è®¡ç®ï¼æ¯è¾ï¼å åçï¼ãå¾åºç»æåå¨è¿åç»å®¢æ·ç«¯ï¼çç¥äºç½ç»é¨åï¼ãå¯¹äºæå ¥çæä½ï¼ä¹ä¸æ ·ï¼åªæ¯å åå åï¼ç¶åå·å°ç¡¬çã
é£ä¹æ¤æ¶é®é¢å°±æ¥äºï¼é½ç¥é硬ççé度åå åçé度ç¸å·®çé常å¤ãæä»¥è¿ä¸ªå åå硬çä¹é´çioæä½è¯å®æ¯é常浪费æ§è½çæä½ï¼æä»¥è¿ç§æä½è½å°åå°±å°åï¼é£mysqlæ¯åæ´çï¼ãmysqléåççç¥æ¯æå¤ä¸ªè®°å½å¼æä¸é¡µï¼ç¶å以页为åä½è¿è¡ioæä½ãè¿æ ·å°±åå°äºio次æ°ï¼èä¸å¤ä¸ªè®°å½ä¹é´å¨ç¡¬ç䏿¯é¡ºåºåå¨çï¼ä¹æé«äºç¡¬çç访é®é度ã
è¿ä¸ªé¡µå°±æ¯mysqlä¸çæ°æ®é¡µï¼é常æ¥è¯´æ¯16k,æ°æ®ä¹éé¢åçæ¯è®°å½ã
è¡æ ¼å¼
å¯¹äºæ¯ä¸æ¡è®°å½æ¥è¯´ï¼å®ä¼æèªå·±çè¡æ ¼å¼ï¼è¿ä¸ªæ ¼å¼å¯ä»¥å¨åå»ºæ°æ®åºç以åæå®ï¼æ¯å¦æå¸ç»ä¸çåå»ºæ°æ®åºçå®ä¹ä¸ºï¼
CREATE TABLE xxx (
xxx xxx
) CHARSET=xxx ROW_FORMAT=COMPACT;
å ¶ä¸COMPACTå°±æ¯ä¸ç§è¡æ ¼å¼ï¼ä¸åçè¡æ ¼å¼ä»£è¡¨å¨ä¸æ¡è®°å½è¡ä¸å卿°æ®çç»æä¸åï¼éç¹ç ç©¶COMPACTæ ¼å¼ã
æ¤è¡æ ¼å¼å为两é¨åï¼
- å æ°æ®åº
- å®é æ°æ®åºã
å æ°æ®åºåå为ä¸ä¸ªé¨åï¼
- å¯åé¿å表
- nullå¼å表
- è®°å½å¤´ä¿¡æ¯
ä»ä¹æ¯å¯åé¿å表ï¼
å¨ä¸ä¸ªè¡¨ä¸é常ævarcharï¼ï¼è¿æ ·çæ°æ®ç±»åãå®ä¼æ ¹æ®æä»¬æ¾è¿å»çå®é çæ°æ®å¤§å°è¿è¡åè´®ï¼æä»¬ç¨èµ·æ¥å¾çå¿ï¼å¾ç½ã使¯æºå¨å¯å¿ é¡»ç¥éå°±è¡åäºå¤å¤§çæ°æ®ï¼å·®ä¸ç¹ä¹ä¸è¡ãæä»¥å¯åé¿å表就åºè¿èçï¼å®çä½ç¨å°±æ¯å卿¯ä¸ªå¯åé¿å段ççå®å¤§å°ãé£é®é¢æ¥äºï¼é£æåºè¯¥ç¨å¤å¤§çæ°æ®æ¥å卿°æ®ççå®å¤§å°åï¼åé¿ï¼ é£å°±æäºèç鸡鸡çèçé®é¢äºã
mysqlä¸çç®æ³æ¯è¿æ ·çï¼
ç¬¬ä¸æ¥ï¼è®¡ç®åé¿å段æå¤§è½åå¨å¤å¤§çæ°æ®ï¼æ¯å¦varchar(255)ï¼ç¨çæ¯asciiå符éï¼é£ä¹è¯¥å段æå¤§å°±å¯ä»¥åè´®255*1=255åèçæ°æ®ã
ç¬¬äºæ¥ï¼å¦æä¸ä¸ªå段çæå¤§å¯ååèæ°å°äºçäº255ï¼é£ä¹å°±å¯ä»¥ç¨ä¸ä¸ªåèåè¯¥åæ®µçå®é é¿åº¦ï¼å 为ä¸ä¸ªåèå «ä½å¯ä»¥è¡¨ç¤º255ï¼ï¼é£å¦æè¯¥å段çæå¤§å¯ååèæ°å¤§äº255å¢ï¼ä¸ä¸ªåèå¯å°±åä¸ä¸äºãé£å°±åå ä¸ä¸ªåèï¼å«å¿äºï¼æä»¬ç°å¨å¤æçåªæ¯æå¤§å¯ååèæ°ï¼å¹¶ä¸æ¯å®é çåèæ°ï¼æ¯å¦å³ä½¿æå®ä¹äºvarchar(1000)ï¼ç¶åæåäºä¸ä¸ª"a",è¿æ¶åç¨ä¸¤ä¸ªåèåç宿°æ®æ¾ç¶å¹¶ä¸åéãæä»¥å¦æç¬¬ä¸æ¥å¤æå¤§äº255ï¼æ¥ä¸æ¥å°±éè¦å¤æç宿°æ®ç大å°äºã妿ç宿°æ®ç大å°å°äºçäº127ï¼é£ä¹å°±è¿ç¨ä¸ä¸ªåèãå¦åå°±ç¨ä¸¤ä¸ªåèãä¸ºå¥æ¯127䏿¯255å¢ï¼ä¸æ¯ä¸ä¸ªåèè½è¡¨ç¤º255åï¼è¿å°±æ¶åå°å¦ä¸ä¸ªé®é¢äºï¼å°±æ¯æ°æ®å¼ææä¹è½ç¥éä¸ä¸ªåèæ¯åç¬ç表示ä¸ä¸ªå®é æ°æ®å¤§å°ï¼è¿æ¯è¯¥åèå°±å±äºç¨ä¸¤ä¸ªåèè½è¡¨ç¤ºä¸ä¸ªå®é æ°æ®å¤§å°çå ¶ä¸ä¸ä¸ªåèï¼æç¹ç»ï¼å®å¨æ³ä¸å°å¥½ç表达æ¹å¼äºï¼ãmysqlçåæ³æ¯ç¨åèç第ä¸ä½æ¥å¤æï¼å¦æåèç第ä¸ä½æ¯0ï¼é£è¯´æè¯¥åèå°äºçäº127ï¼æä»¥å°±æ¯ä¸ä¸ªåç¬çæ°æ®ã妿ä¸ä¸ªåèçé¦ä½ä¸º1ï¼å°±è¯´æå¤§äº127ï¼å°±è¡¨å该åèå该åèä¹åçä¸ä¸ªåèå ±å代表ä¸ä¸ªæ°æ®ã
é£å¦æä¸¤ä¸ªåèä¹åä¸ä¸ç宿°æ®ç大å°å¢ï¼æ®è¯´åä¸ä¸ªå«åçå¤åºçå°æ¹ï¼å¯ä»¥æç宿°æ®æªæï¼åå°å¦ä¸ä¸ªå°æ¹ã
ç»è¿ä¸é¢ç计ç®ï¼æç»å¾å°å¯åé¿å段çç宿°æ®å¤§å°ï¼åå°è®°å½çå¼å¤´ã
ä»ä¹æ¯nullå¼å表ï¼
å¯åé¿å表ç®çæ¯ä¸è®©å¼æè¿·æï¼ç©¶ç«æ°æ®æå¤å¤§ãnullå表çç®çå°±ç®åç²æ´çå¤ï¼å°±æ¯ä¸ºäºèçåå¨ç©ºé´ã
å¦æç´æ¥å¨å段ä¸è¡¨ç¤ºä¸ä¸ªå¼æ¯å¦ä¸ºnullï¼é£ä¹æä½éè¦ä¸ä¸ªåèï¼èä¸éè¦æ ¹æ®ä¸åçæ°æ®ç±»åï¼ä¸åçåç¬¦éæ¥å¤çã
nullå¼å表ç忳就æ¯ï¼ç¨ä½æ¥æ å¿ä¸ä¸ªæå¤å°å段ä½nullï¼æ¯ä¸ªä½0表示为null,1表示ä¸ä¸ºnullï¼æ¯å¦æ¡è®°å½ä¸æ8ä¸ªåæ®µä¸ºnullï¼é£ä¹å°±ç¨ä¸ä¸ªåèæ¥è¡¨ç¤ºå°±OKãé£å¦ææä¸¤ä¸ªå段为空å¢ï¼é£ä¹æ¯ç¨ä¸ä¸ªåèæ¥è¡¨ç¤ºï¼åèæ¯æå°åä½äºï¼ä¸è½å¨åäºã
è®°å½å¤´ä¿¡æ¯ï¼
è®°å½å¤´ä¿¡æ¯å°±æ¯ä¸å¤§ä¸²æ å¿ä½ï¼ä¸å ±äºä¸ªåèï¼åºå®çï¼ï¼40ä½ï¼æ¯ä¸ªä½æä¸ç¨çå«ä¹ã
å®é æ°æ®åºï¼
ä½ ä»¥ä¸ºå®é æ°æ®åºå°±ä» ä» åå¨ä½ çä¸å¡æ°æ®åï¼å ¶å®å¹¶ä¸æ¯ï¼å®é æ°æ®åºéè¿æä¸ä¸ªéèåºï¼éèåºæä¸ä¸ªå段ï¼
rowid:妿å建çè¡¨ä¸æ²¡æä¸»é®ï¼æ²¡æå¯ä¸ç´¢å¼ï¼é£ä¹æ°æ®åºå°±æ·»å è¿ä¸ªéèåæ®µï¼ç®çæ¯ç¨è¿ä¸ªéèåæ®µå建èéç´¢å¼ï¼innodb弿æ¥è¯´ï¼ï¼
transactionIDï¼å¾ ç ç©¶
rollpointer:å¾ ç ç©¶
å©ä¸çææ¯åå¨çä¸å¡æ°æ®[/æå¨ç头]ã
one more thingï¼charæ¯åé¿çåï¼å¯åé¿å表ä¼è®°å½è¯¥å段çå®é é¿åº¦åï¼
çï¼è¿ä¸ªåå符éæå ³ï¼å¦æç¨çæ¯å®é¿çå符éï¼é£ä¹charå°±æ¯ä¸å¯åçï¼å¦asciiå符éï¼ä¹ä¸ªå符åºå®ç¨ä¸ä¸ªåè表示ã妿ç¨çæ¯åé¿çå符éï¼å¦utf-8é£ä¹è¯¥å段就æ¯å¯åçï¼å 为utf8ç¨1-3个åè表示ä¸ä¸ªå符ã
è¡æ ¼å¼è¿æå¥½å¤ï¼ä¸è¬ä¸å¡åºæ¯å¸¸ç¨çä¹å°±è¿ä¸ªå§ãå©ä¸çææ¶é´åç ç©¶ã