Documentation Source Text

Hex Artifact Content
Login

Artifact c57a2e60319c6d467fab2e7d0a4886917ed94c01:


0000: 3c 74 63 6c 3e 68 64 5f 6b 65 79 77 6f 72 64 73  <tcl>hd_keywords
0010: 20 7b 42 4c 4f 42 20 49 2f 4f 20 70 65 72 66 6f   {BLOB I/O perfo
0020: 72 6d 61 6e 63 65 7d 20 7b 49 6e 74 65 72 6e 61  rmance} {Interna
0030: 6c 20 56 65 72 73 75 73 20 45 78 74 65 72 6e 61  l Versus Externa
0040: 6c 20 42 4c 4f 42 73 7d 3c 2f 74 63 6c 3e 0a 3c  l BLOBs}</tcl>.<
0050: 74 69 74 6c 65 3e 49 6e 74 65 72 6e 61 6c 20 56  title>Internal V
0060: 65 72 73 75 73 20 45 78 74 65 72 6e 61 6c 20 42  ersus External B
0070: 4c 4f 42 73 3c 2f 74 69 74 6c 65 3e 0a 3c 62 6f  LOBs</title>.<bo
0080: 64 79 3e 0a 3c 68 31 20 61 6c 69 67 6e 3d 22 63  dy>.<h1 align="c
0090: 65 6e 74 65 72 22 3e 0a 49 6e 74 65 72 6e 61 6c  enter">.Internal
00a0: 20 56 65 72 73 75 73 20 45 78 74 65 72 6e 61 6c   Versus External
00b0: 20 42 4c 4f 42 73 20 69 6e 20 53 51 4c 69 74 65   BLOBs in SQLite
00c0: 0a 3c 2f 68 31 3e 0a 0a 3c 70 3e 0a 49 66 20 79  .</h1>..<p>.If y
00d0: 6f 75 20 68 61 76 65 20 61 20 64 61 74 61 62 61  ou have a databa
00e0: 73 65 20 6f 66 20 6c 61 72 67 65 20 42 4c 4f 42  se of large BLOB
00f0: 73 2c 20 64 6f 20 79 6f 75 20 67 65 74 20 62 65  s, do you get be
0100: 74 74 65 72 20 72 65 61 64 20 70 65 72 66 6f 72  tter read perfor
0110: 6d 61 6e 63 65 0a 77 68 65 6e 20 79 6f 75 20 73  mance.when you s
0120: 74 6f 72 65 20 74 68 65 20 63 6f 6d 70 6c 65 74  tore the complet
0130: 65 0a 42 4c 4f 42 20 63 6f 6e 74 65 6e 74 20 64  e.BLOB content d
0140: 69 72 65 63 74 6c 79 20 69 6e 20 74 68 65 20 64  irectly in the d
0150: 61 74 61 62 61 73 65 20 6f 72 20 69 73 20 69 74  atabase or is it
0160: 20 66 61 73 74 65 72 20 74 6f 20 73 74 6f 72 65   faster to store
0170: 20 65 61 63 68 20 42 4c 4f 42 0a 69 6e 20 61 20   each BLOB.in a 
0180: 73 65 70 61 72 61 74 65 20 66 69 6c 65 20 61 6e  separate file an
0190: 64 20 73 74 6f 72 65 20 6a 75 73 74 20 74 68 65  d store just the
01a0: 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 66   corresponding f
01b0: 69 6c 65 6e 61 6d 65 20 69 6e 20 74 68 65 20 64  ilename in the d
01c0: 61 74 61 62 61 73 65 3f 0a 3c 2f 70 3e 0a 0a 3c  atabase?.</p>..<
01d0: 70 3e 0a 54 6f 20 74 72 79 20 74 6f 20 61 6e 73  p>.To try to ans
01e0: 77 65 72 20 74 68 69 73 2c 20 77 65 20 72 61 6e  wer this, we ran
01f0: 20 34 39 20 74 65 73 74 20 63 61 73 65 73 20 77   49 test cases w
0200: 69 74 68 20 76 61 72 69 6f 75 73 20 42 4c 4f 42  ith various BLOB
0210: 20 73 69 7a 65 73 20 61 6e 64 0a 53 51 4c 69 74   sizes and.SQLit
0220: 65 20 70 61 67 65 20 73 69 7a 65 73 20 6f 6e 20  e page sizes on 
0230: 61 20 4c 69 6e 75 78 20 77 6f 72 6b 73 74 61 74  a Linux workstat
0240: 69 6f 6e 20 28 55 62 75 6e 74 75 20 63 69 72 63  ion (Ubuntu circ
0250: 61 20 32 30 31 31 20 77 69 74 68 20 74 68 65 0a  a 2011 with the.
0260: 45 78 74 34 20 66 69 6c 65 73 79 73 74 65 6d 20  Ext4 filesystem 
0270: 6f 6e 20 61 20 66 61 73 74 20 53 41 54 41 20 64  on a fast SATA d
0280: 69 73 6b 29 2e 0a 46 6f 72 20 65 61 63 68 20 74  isk)..For each t
0290: 65 73 74 20 63 61 73 65 2c 20 61 20 64 61 74 61  est case, a data
02a0: 62 61 73 65 20 77 61 73 20 63 72 65 61 74 65 64  base was created
02b0: 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 73 20 31   that contains 1
02c0: 30 30 4d 42 20 6f 66 20 42 4c 4f 42 0a 63 6f 6e  00MB of BLOB.con
02d0: 74 65 6e 74 2e 20 20 54 68 65 20 73 69 7a 65 73  tent.  The sizes
02e0: 20 6f 66 20 74 68 65 20 42 4c 4f 42 73 20 72 61   of the BLOBs ra
02f0: 6e 67 65 64 20 66 72 6f 6d 20 31 30 4b 42 20 74  nged from 10KB t
0300: 6f 20 31 4d 42 2e 20 20 54 68 65 20 6e 75 6d 62  o 1MB.  The numb
0310: 65 72 0a 6f 66 20 42 4c 4f 42 73 20 76 61 72 69  er.of BLOBs vari
0320: 65 64 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 6b  ed in order to k
0330: 65 65 70 20 74 68 65 20 74 6f 74 61 6c 20 42 4c  eep the total BL
0340: 4f 42 20 63 6f 6e 74 65 6e 74 20 61 74 20 61 62  OB content at ab
0350: 6f 75 74 20 31 30 30 4d 42 2e 0a 28 48 65 6e 63  out 100MB..(Henc
0360: 65 2c 20 31 30 30 20 42 4c 4f 42 73 20 66 6f 72  e, 100 BLOBs for
0370: 20 74 68 65 20 31 4d 42 20 73 69 7a 65 20 61 6e   the 1MB size an
0380: 64 20 31 30 30 30 30 20 42 4c 4f 42 73 20 66 6f  d 10000 BLOBs fo
0390: 72 20 74 68 65 20 31 30 4b 20 73 69 7a 65 20 61  r the 10K size a
03a0: 6e 64 0a 73 6f 20 66 6f 72 74 68 2e 29 20 20 53  nd.so forth.)  S
03b0: 51 4c 69 74 65 20 76 65 72 73 69 6f 6e 20 33 2e  QLite version 3.
03c0: 37 2e 38 20 77 61 73 20 75 73 65 64 2e 0a 3c 2f  7.8 was used..</
03d0: 70 3e 0a 0a 3c 70 3e 0a 54 68 65 20 6d 61 74 72  p>..<p>.The matr
03e0: 69 78 20 62 65 6c 6f 77 20 73 68 6f 77 73 20 74  ix below shows t
03f0: 68 65 20 74 69 6d 65 20 6e 65 65 64 65 64 20 74  he time needed t
0400: 6f 20 72 65 61 64 20 42 4c 4f 42 73 20 73 74 6f  o read BLOBs sto
0410: 72 65 64 20 69 6e 20 73 65 70 61 72 61 74 65 20  red in separate 
0420: 66 69 6c 65 73 0a 64 69 76 69 64 65 64 20 62 79  files.divided by
0430: 20 74 68 65 20 74 69 6d 65 20 6e 65 65 64 65 64   the time needed
0440: 20 74 6f 20 72 65 61 64 20 42 4c 4f 42 73 20 73   to read BLOBs s
0450: 74 6f 72 65 64 20 65 6e 74 69 72 65 6c 79 20 69  tored entirely i
0460: 6e 20 74 68 65 20 64 61 74 61 62 61 73 65 2e 20  n the database. 
0470: 20 0a 48 65 6e 63 65 2c 20 66 6f 72 20 6e 75 6d   .Hence, for num
0480: 62 65 72 73 20 6c 61 72 67 65 72 20 74 68 61 6e  bers larger than
0490: 20 31 2e 30 2c 20 69 74 20 69 73 20 66 61 73 74   1.0, it is fast
04a0: 65 72 20 74 6f 20 73 74 6f 72 65 20 74 68 65 20  er to store the 
04b0: 42 4c 4f 42 73 20 64 69 72 65 63 74 6c 79 20 0a  BLOBs directly .
04c0: 69 6e 20 74 68 65 20 64 61 74 61 62 61 73 65 2e  in the database.
04d0: 20 20 46 6f 72 20 6e 75 6d 62 65 72 73 20 73 6d    For numbers sm
04e0: 61 6c 6c 65 72 20 74 68 61 6e 20 31 2e 30 2c 20  aller than 1.0, 
04f0: 69 74 20 69 73 20 66 61 73 74 65 72 20 74 6f 20  it is faster to 
0500: 73 74 6f 72 65 20 74 68 65 20 42 4c 4f 42 73 0a  store the BLOBs.
0510: 69 6e 20 73 65 70 61 72 61 74 65 20 66 69 6c 65  in separate file
0520: 73 2e 0a 3c 2f 70 3e 0a 0a 3c 70 3e 0a 49 6e 20  s..</p>..<p>.In 
0530: 65 76 65 72 79 20 63 61 73 65 2c 20 74 68 65 20  every case, the 
0540: 70 61 67 65 72 20 63 61 63 68 65 20 73 69 7a 65  pager cache size
0550: 20 77 61 73 20 61 64 6a 75 73 74 65 64 20 74 6f   was adjusted to
0560: 20 6b 65 65 70 20 74 68 65 20 61 6d 6f 75 6e 74   keep the amount
0570: 20 6f 66 0a 63 61 63 68 65 20 6d 65 6d 6f 72 79   of.cache memory
0580: 20 61 74 20 61 62 6f 75 74 20 32 4d 42 2e 20 20   at about 2MB.  
0590: 0a 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 61 20  .For example, a 
05a0: 32 30 30 30 20 70 61 67 65 20 63 61 63 68 65 20  2000 page cache 
05b0: 77 61 73 20 75 73 65 64 20 66 6f 72 20 31 30 32  was used for 102
05c0: 34 20 62 79 74 65 20 70 61 67 65 73 0a 61 6e 64  4 byte pages.and
05d0: 20 61 20 33 31 20 70 61 67 65 20 63 61 63 68 65   a 31 page cache
05e0: 20 77 61 73 20 75 73 65 64 20 66 6f 72 20 36 35   was used for 65
05f0: 35 33 36 20 62 79 74 65 20 70 61 67 65 73 2e 0a  536 byte pages..
0600: 54 68 65 20 42 4c 4f 42 20 76 61 6c 75 65 73 20  The BLOB values 
0610: 77 65 72 65 20 72 65 61 64 20 69 6e 20 61 20 72  were read in a r
0620: 61 6e 64 6f 6d 20 6f 72 64 65 72 2e 0a 3c 2f 70  andom order..</p
0630: 3e 0a 0a 3c 74 61 62 6c 65 20 62 6f 72 64 65 72  >..<table border
0640: 3d 22 31 22 20 63 65 6c 6c 70 61 64 64 69 6e 67  ="1" cellpadding
0650: 3d 22 35 22 20 63 65 6c 6c 73 70 61 63 69 6e 67  ="5" cellspacing
0660: 3d 22 30 22 20 61 6c 69 67 6e 3d 22 63 65 6e 74  ="0" align="cent
0670: 65 72 22 3e 0a 3c 74 72 3e 0a 3c 74 68 20 72 6f  er">.<tr>.<th ro
0680: 77 73 70 61 6e 3d 22 32 22 3e 44 61 74 61 62 61  wspan="2">Databa
0690: 73 65 20 50 61 67 65 20 53 69 7a 65 3c 74 68 20  se Page Size<th 
06a0: 63 6f 6c 73 70 61 6e 3d 22 37 22 3e 42 4c 4f 42  colspan="7">BLOB
06b0: 20 73 69 7a 65 0a 3c 74 72 3e 0a 3c 74 68 3e 31   size.<tr>.<th>1
06c0: 30 6b 3c 74 68 3e 32 30 6b 3c 74 68 3e 35 30 6b  0k<th>20k<th>50k
06d0: 3c 74 68 3e 31 30 30 6b 3c 74 68 3e 32 30 30 6b  <th>100k<th>200k
06e0: 3c 74 68 3e 35 30 30 6b 3c 74 68 3e 31 6d 0a 0a  <th>500k<th>1m..
06f0: 3c 74 72 3e 0a 3c 74 64 3e 31 30 32 34 3c 74 64  <tr>.<td>1024<td
0700: 20 62 67 63 6f 6c 6f 72 3d 22 23 62 31 64 33 61   bgcolor="#b1d3a
0710: 38 22 3e 31 2e 35 33 35 3c 74 64 20 62 67 63 6f  8">1.535<td bgco
0720: 6c 6f 72 3d 22 23 62 31 64 33 61 38 22 3e 31 2e  lor="#b1d3a8">1.
0730: 30 32 30 3c 74 64 20 62 67 63 6f 6c 6f 72 3d 22  020<td bgcolor="
0740: 23 66 66 63 30 64 30 22 3e 30 2e 36 30 38 3c 74  #ffc0d0">0.608<t
0750: 64 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66 63 30  d bgcolor="#ffc0
0760: 64 30 22 3e 30 2e 34 35 36 3c 74 64 20 62 67 63  d0">0.456<td bgc
0770: 6f 6c 6f 72 3d 22 23 66 66 63 30 64 30 22 3e 30  olor="#ffc0d0">0
0780: 2e 33 33 30 3c 74 64 20 62 67 63 6f 6c 6f 72 3d  .330<td bgcolor=
0790: 22 23 66 66 63 30 64 30 22 3e 30 2e 32 34 37 3c  "#ffc0d0">0.247<
07a0: 74 64 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66 63  td bgcolor="#ffc
07b0: 30 64 30 22 3e 30 2e 32 33 33 0a 0a 3c 74 72 3e  0d0">0.233..<tr>
07c0: 0a 3c 74 64 3e 32 30 34 38 3c 74 64 20 62 67 63  .<td>2048<td bgc
07d0: 6f 6c 6f 72 3d 22 23 62 31 64 33 61 38 22 3e 32  olor="#b1d3a8">2
07e0: 2e 30 30 34 3c 74 64 20 62 67 63 6f 6c 6f 72 3d  .004<td bgcolor=
07f0: 22 23 62 31 64 33 61 38 22 3e 31 2e 34 33 37 3c  "#b1d3a8">1.437<
0800: 74 64 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66 63  td bgcolor="#ffc
0810: 30 64 30 22 3e 30 2e 38 37 30 3c 74 64 20 62 67  0d0">0.870<td bg
0820: 63 6f 6c 6f 72 3d 22 23 66 66 63 30 64 30 22 3e  color="#ffc0d0">
0830: 30 2e 36 33 36 3c 74 64 20 62 67 63 6f 6c 6f 72  0.636<td bgcolor
0840: 3d 22 23 66 66 63 30 64 30 22 3e 30 2e 34 38 33  ="#ffc0d0">0.483
0850: 3c 74 64 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66  <td bgcolor="#ff
0860: 63 30 64 30 22 3e 30 2e 33 37 32 3c 74 64 20 62  c0d0">0.372<td b
0870: 67 63 6f 6c 6f 72 3d 22 23 66 66 63 30 64 30 22  gcolor="#ffc0d0"
0880: 3e 30 2e 33 34 30 0a 0a 3c 74 72 3e 0a 3c 74 64  >0.340..<tr>.<td
0890: 3e 34 30 39 36 3c 74 64 20 62 67 63 6f 6c 6f 72  >4096<td bgcolor
08a0: 3d 22 23 62 31 64 33 61 38 22 3e 32 2e 32 36 31  ="#b1d3a8">2.261
08b0: 3c 74 64 20 62 67 63 6f 6c 6f 72 3d 22 23 62 31  <td bgcolor="#b1
08c0: 64 33 61 38 22 3e 31 2e 38 38 36 3c 74 64 20 62  d3a8">1.886<td b
08d0: 67 63 6f 6c 6f 72 3d 22 23 62 31 64 33 61 38 22  gcolor="#b1d3a8"
08e0: 3e 31 2e 31 37 33 3c 74 64 20 62 67 63 6f 6c 6f  >1.173<td bgcolo
08f0: 72 3d 22 23 66 66 63 30 64 30 22 3e 30 2e 38 39  r="#ffc0d0">0.89
0900: 30 3c 74 64 20 62 67 63 6f 6c 6f 72 3d 22 23 66  0<td bgcolor="#f
0910: 66 63 30 64 30 22 3e 30 2e 37 30 31 3c 74 64 20  fc0d0">0.701<td 
0920: 62 67 63 6f 6c 6f 72 3d 22 23 66 66 63 30 64 30  bgcolor="#ffc0d0
0930: 22 3e 30 2e 35 32 36 3c 74 64 20 62 67 63 6f 6c  ">0.526<td bgcol
0940: 6f 72 3d 22 23 66 66 63 30 64 30 22 3e 30 2e 34  or="#ffc0d0">0.4
0950: 38 37 0a 0a 3c 74 72 3e 0a 3c 74 64 3e 38 31 39  87..<tr>.<td>819
0960: 32 3c 74 64 20 62 67 63 6f 6c 6f 72 3d 22 23 62  2<td bgcolor="#b
0970: 31 64 33 61 38 22 3e 32 2e 32 34 30 3c 74 64 20  1d3a8">2.240<td 
0980: 62 67 63 6f 6c 6f 72 3d 22 23 62 31 64 33 61 38  bgcolor="#b1d3a8
0990: 22 3e 31 2e 38 36 36 3c 74 64 20 62 67 63 6f 6c  ">1.866<td bgcol
09a0: 6f 72 3d 22 23 62 31 64 33 61 38 22 3e 31 2e 33  or="#b1d3a8">1.3
09b0: 33 34 3c 74 64 20 62 67 63 6f 6c 6f 72 3d 22 23  34<td bgcolor="#
09c0: 62 31 64 33 61 38 22 3e 31 2e 30 33 35 3c 74 64  b1d3a8">1.035<td
09d0: 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66 63 30 64   bgcolor="#ffc0d
09e0: 30 22 3e 30 2e 38 33 30 3c 74 64 20 62 67 63 6f  0">0.830<td bgco
09f0: 6c 6f 72 3d 22 23 66 66 63 30 64 30 22 3e 30 2e  lor="#ffc0d0">0.
0a00: 36 32 35 3c 74 64 20 62 67 63 6f 6c 6f 72 3d 22  625<td bgcolor="
0a10: 23 66 66 63 30 64 30 22 3e 30 2e 37 32 30 0a 0a  #ffc0d0">0.720..
0a20: 3c 74 72 3e 0a 3c 74 64 3e 31 36 33 38 34 3c 74  <tr>.<td>16384<t
0a30: 64 20 62 67 63 6f 6c 6f 72 3d 22 23 62 31 64 33  d bgcolor="#b1d3
0a40: 61 38 22 3e 32 2e 34 33 39 3c 74 64 20 62 67 63  a8">2.439<td bgc
0a50: 6f 6c 6f 72 3d 22 23 62 31 64 33 61 38 22 3e 31  olor="#b1d3a8">1
0a60: 2e 37 35 37 3c 74 64 20 62 67 63 6f 6c 6f 72 3d  .757<td bgcolor=
0a70: 22 23 62 31 64 33 61 38 22 3e 31 2e 32 39 32 3c  "#b1d3a8">1.292<
0a80: 74 64 20 62 67 63 6f 6c 6f 72 3d 22 23 62 31 64  td bgcolor="#b1d
0a90: 33 61 38 22 3e 31 2e 30 32 33 3c 74 64 20 62 67  3a8">1.023<td bg
0aa0: 63 6f 6c 6f 72 3d 22 23 66 66 63 30 64 30 22 3e  color="#ffc0d0">
0ab0: 30 2e 38 32 39 3c 74 64 20 62 67 63 6f 6c 6f 72  0.829<td bgcolor
0ac0: 3d 22 23 66 66 63 30 64 30 22 3e 30 2e 38 32 30  ="#ffc0d0">0.820
0ad0: 3c 74 64 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66  <td bgcolor="#ff
0ae0: 63 30 64 30 22 3e 30 2e 35 39 38 0a 0a 3c 74 72  c0d0">0.598..<tr
0af0: 3e 0a 3c 74 64 3e 33 32 37 36 38 3c 74 64 20 62  >.<td>32768<td b
0b00: 67 63 6f 6c 6f 72 3d 22 23 62 31 64 33 61 38 22  gcolor="#b1d3a8"
0b10: 3e 31 2e 38 37 38 3c 74 64 20 62 67 63 6f 6c 6f  >1.878<td bgcolo
0b20: 72 3d 22 23 62 31 64 33 61 38 22 3e 31 2e 38 34  r="#b1d3a8">1.84
0b30: 33 3c 74 64 20 62 67 63 6f 6c 6f 72 3d 22 23 62  3<td bgcolor="#b
0b40: 31 64 33 61 38 22 3e 31 2e 32 39 36 3c 74 64 20  1d3a8">1.296<td 
0b50: 62 67 63 6f 6c 6f 72 3d 22 23 66 66 63 30 64 30  bgcolor="#ffc0d0
0b60: 22 3e 30 2e 39 38 31 3c 74 64 20 62 67 63 6f 6c  ">0.981<td bgcol
0b70: 6f 72 3d 22 23 66 66 63 30 64 30 22 3e 30 2e 39  or="#ffc0d0">0.9
0b80: 37 36 3c 74 64 20 62 67 63 6f 6c 6f 72 3d 22 23  76<td bgcolor="#
0b90: 66 66 63 30 64 30 22 3e 30 2e 36 37 35 3c 74 64  ffc0d0">0.675<td
0ba0: 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66 63 30 64   bgcolor="#ffc0d
0bb0: 30 22 3e 30 2e 36 31 33 0a 0a 3c 74 72 3e 0a 3c  0">0.613..<tr>.<
0bc0: 74 64 3e 36 35 35 33 36 3c 74 64 20 62 67 63 6f  td>65536<td bgco
0bd0: 6c 6f 72 3d 22 23 62 31 64 33 61 38 22 3e 31 2e  lor="#b1d3a8">1.
0be0: 32 35 36 3c 74 64 20 62 67 63 6f 6c 6f 72 3d 22  256<td bgcolor="
0bf0: 23 62 31 64 33 61 38 22 3e 31 2e 32 35 35 3c 74  #b1d3a8">1.255<t
0c00: 64 20 62 67 63 6f 6c 6f 72 3d 22 23 62 31 64 33  d bgcolor="#b1d3
0c10: 61 38 22 3e 31 2e 33 33 39 3c 74 64 20 62 67 63  a8">1.339<td bgc
0c20: 6f 6c 6f 72 3d 22 23 66 66 63 30 64 30 22 3e 30  olor="#ffc0d0">0
0c30: 2e 39 38 33 3c 74 64 20 62 67 63 6f 6c 6f 72 3d  .983<td bgcolor=
0c40: 22 23 66 66 63 30 64 30 22 3e 30 2e 37 36 39 3c  "#ffc0d0">0.769<
0c50: 74 64 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66 63  td bgcolor="#ffc
0c60: 30 64 30 22 3e 30 2e 36 38 37 3c 74 64 20 62 67  0d0">0.687<td bg
0c70: 63 6f 6c 6f 72 3d 22 23 66 66 63 30 64 30 22 3e  color="#ffc0d0">
0c80: 30 2e 36 30 39 0a 0a 3c 2f 74 61 62 6c 65 3e 0a  0.609..</table>.
0c90: 0a 0a 3c 70 3e 57 65 20 64 65 64 75 63 65 20 74  ..<p>We deduce t
0ca0: 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 72 75 6c  he following rul
0cb0: 65 73 20 6f 66 20 74 68 75 6d 62 20 66 72 6f 6d  es of thumb from
0cc0: 20 74 68 65 20 6d 61 74 72 69 78 20 61 62 6f 76   the matrix abov
0cd0: 65 3a 3c 2f 70 3e 0a 0a 3c 75 6c 3e 0a 3c 6c 69  e:</p>..<ul>.<li
0ce0: 3e 3c 70 3e 0a 41 20 64 61 74 61 62 61 73 65 20  ><p>.A database 
0cf0: 70 61 67 65 20 73 69 7a 65 20 6f 66 20 38 31 39  page size of 819
0d00: 32 20 6f 72 20 31 36 33 38 34 20 67 69 76 65 73  2 or 16384 gives
0d10: 20 74 68 65 20 62 65 73 74 20 70 65 72 66 6f 72   the best perfor
0d20: 6d 61 6e 63 65 0a 66 6f 72 20 6c 61 72 67 65 20  mance.for large 
0d30: 42 4c 4f 42 20 49 2f 4f 2e 0a 0a 3c 6c 69 3e 3c  BLOB I/O...<li><
0d40: 70 3e 46 6f 72 20 42 4c 4f 42 73 20 73 6d 61 6c  p>For BLOBs smal
0d50: 6c 65 72 20 74 68 61 6e 20 31 30 30 4b 42 2c 20  ler than 100KB, 
0d60: 72 65 61 64 73 20 61 72 65 20 66 61 73 74 65 72  reads are faster
0d70: 20 77 68 65 6e 0a 74 68 65 20 42 4c 4f 42 73 20   when.the BLOBs 
0d80: 61 72 65 20 73 74 6f 72 65 64 20 64 69 72 65 63  are stored direc
0d90: 74 6c 79 20 69 6e 20 74 68 65 20 64 61 74 61 62  tly in the datab
0da0: 61 73 65 20 66 69 6c 65 2e 20 20 46 6f 72 20 42  ase file.  For B
0db0: 4c 4f 42 73 20 6c 61 72 67 65 72 20 74 68 61 6e  LOBs larger than
0dc0: 0a 31 30 30 4b 42 2c 20 72 65 61 64 73 20 66 72  .100KB, reads fr
0dd0: 6f 6d 20 61 20 73 65 70 61 72 61 74 65 20 66 69  om a separate fi
0de0: 6c 65 20 61 72 65 20 66 61 73 74 65 72 2e 0a 3c  le are faster..<
0df0: 2f 75 6c 3e 0a 0a 3c 70 3e 4f 66 20 63 6f 75 72  /ul>..<p>Of cour
0e00: 73 65 2c 20 79 6f 75 72 20 6d 69 6c 65 61 67 65  se, your mileage
0e10: 20 6d 61 79 20 76 61 72 79 20 64 65 70 65 6e 64   may vary depend
0e20: 69 6e 67 20 6f 6e 20 68 61 72 64 77 61 72 65 2c  ing on hardware,
0e30: 20 66 69 6c 65 73 79 73 74 65 6d 2c 0a 61 6e 64   filesystem,.and
0e40: 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65   operating syste
0e50: 6d 2e 20 20 44 6f 75 62 6c 65 2d 63 68 65 63 6b  m.  Double-check
0e60: 20 74 68 65 73 65 20 66 69 67 75 72 65 73 20 6f   these figures o
0e70: 6e 20 74 61 72 67 65 74 20 68 61 72 64 77 61 72  n target hardwar
0e80: 65 0a 62 65 66 6f 72 65 20 63 6f 6d 6d 69 74 74  e.before committ
0e90: 69 6e 67 20 74 6f 20 61 20 70 61 72 74 69 63 75  ing to a particu
0ea0: 6c 61 72 20 64 65 73 69 67 6e 2e 0a              lar design..