Documentation Source Text

Hex Artifact Content
Login

Artifact 797d12545fa6acd70003d1def1fdf8a2c97dd11d1639ed28858eab1023c16033:


0000: 3c 74 69 74 6c 65 3e 4d 6f 73 74 20 57 69 64 65  <title>Most Wide
0010: 6c 79 20 44 65 70 6c 6f 79 65 64 20 53 51 4c 20  ly Deployed SQL 
0020: 44 61 74 61 62 61 73 65 20 45 6e 67 69 6e 65 3c  Database Engine<
0030: 2f 74 69 74 6c 65 3e 0a 3c 74 63 6c 3e 68 64 5f  /title>.<tcl>hd_
0040: 6b 65 79 77 6f 72 64 73 20 7b 6d 6f 73 74 20 77  keywords {most w
0050: 69 64 65 6c 79 20 64 65 70 6c 6f 79 65 64 7d 20  idely deployed} 
0060: 7b 6d 6f 73 74 20 75 73 65 64 7d 20 7b 6d 6f 73  {most used} {mos
0070: 74 20 77 69 64 65 6c 79 20 75 73 65 64 7d 3c 2f  t widely used}</
0080: 74 63 6c 3e 0a 0a 3c 68 32 3e 4d 6f 73 74 20 57  tcl>..<h2>Most W
0090: 69 64 65 6c 79 20 44 65 70 6c 6f 79 65 64 20 61  idely Deployed a
00a0: 6e 64 20 55 73 65 64 20 44 61 74 61 62 61 73 65  nd Used Database
00b0: 20 45 6e 67 69 6e 65 3c 2f 68 32 3e 0a 0a 3c 70   Engine</h2>..<p
00c0: 3e 53 51 4c 69 74 65 20 69 73 20 6c 69 6b 65 6c  >SQLite is likel
00d0: 79 20 75 73 65 64 20 6d 6f 72 65 20 74 68 61 6e  y used more than
00e0: 20 61 6c 6c 20 6f 74 68 65 72 20 64 61 74 61 62   all other datab
00f0: 61 73 65 20 65 6e 67 69 6e 65 73 0a 63 6f 6d 62  ase engines.comb
0100: 69 6e 65 64 2e 20 20 42 69 6c 6c 69 6f 6e 73 20  ined.  Billions 
0110: 61 6e 64 20 62 69 6c 6c 69 6f 6e 73 20 6f 66 20  and billions of 
0120: 63 6f 70 69 65 73 0a 6f 66 20 53 51 4c 69 74 65  copies.of SQLite
0130: 20 65 78 69 73 74 20 69 6e 20 74 68 65 20 77 69   exist in the wi
0140: 6c 64 2e 20 20 53 51 4c 69 74 65 20 69 73 20 66  ld.  SQLite is f
0150: 6f 75 6e 64 20 69 6e 3a 0a 0a 3c 75 6c 3e 0a 3c  ound in:..<ul>.<
0160: 6c 69 3e 45 76 65 72 79 20 41 6e 64 72 6f 69 64  li>Every Android
0170: 20 64 65 76 69 63 65 0a 3c 6c 69 3e 45 76 65 72   device.<li>Ever
0180: 79 20 69 50 68 6f 6e 65 20 61 6e 64 20 69 4f 53  y iPhone and iOS
0190: 20 64 65 76 69 63 65 0a 3c 6c 69 3e 45 76 65 72   device.<li>Ever
01a0: 79 20 4d 61 63 0a 3c 6c 69 3e 45 76 65 72 79 20  y Mac.<li>Every 
01b0: 57 69 6e 64 6f 77 73 31 30 20 6d 61 63 68 69 6e  Windows10 machin
01c0: 65 0a 3c 6c 69 3e 45 76 65 72 79 20 46 69 72 65  e.<li>Every Fire
01d0: 66 6f 78 2c 20 43 68 72 6f 6d 65 2c 20 61 6e 64  fox, Chrome, and
01e0: 20 53 61 66 61 72 69 20 77 65 62 20 62 72 6f 77   Safari web brow
01f0: 73 65 72 0a 3c 6c 69 3e 45 76 65 72 79 20 69 6e  ser.<li>Every in
0200: 73 74 61 6e 63 65 20 6f 66 20 53 6b 79 70 65 0a  stance of Skype.
0210: 3c 6c 69 3e 45 76 65 72 79 20 69 6e 73 74 61 6e  <li>Every instan
0220: 63 65 20 6f 66 20 69 54 75 6e 65 73 0a 3c 6c 69  ce of iTunes.<li
0230: 3e 45 76 65 72 79 20 44 72 6f 70 62 6f 78 20 63  >Every Dropbox c
0240: 6c 69 65 6e 74 0a 3c 6c 69 3e 45 76 65 72 79 20  lient.<li>Every 
0250: 54 75 72 62 6f 54 61 78 20 61 6e 64 20 51 75 69  TurboTax and Qui
0260: 63 6b 42 6f 6f 6b 73 0a 3c 6c 69 3e 50 48 50 20  ckBooks.<li>PHP 
0270: 61 6e 64 20 50 79 74 68 6f 6e 0a 3c 6c 69 3e 4d  and Python.<li>M
0280: 6f 73 74 20 74 65 6c 65 76 69 73 69 6f 6e 20 73  ost television s
0290: 65 74 73 20 61 6e 64 20 73 65 74 2d 74 6f 70 20  ets and set-top 
02a0: 63 61 62 6c 65 20 62 6f 78 65 73 0a 3c 6c 69 3e  cable boxes.<li>
02b0: 4d 6f 73 74 20 61 75 74 6f 6d 6f 74 69 76 65 20  Most automotive 
02c0: 6d 75 6c 74 69 6d 65 64 69 61 20 73 79 73 74 65  multimedia syste
02d0: 6d 73 0a 3c 6c 69 3e 43 6f 75 6e 74 6c 65 73 73  ms.<li>Countless
02e0: 20 6d 69 6c 6c 69 6f 6e 73 20 6f 66 20 6f 74 68   millions of oth
02f0: 65 72 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 0a  er applications.
0300: 3c 2f 75 6c 3e 0a 0a 3c 70 3e 53 69 6e 63 65 20  </ul>..<p>Since 
0310: 53 51 4c 69 74 65 20 69 73 20 75 73 65 64 20 65  SQLite is used e
0320: 78 74 65 6e 73 69 76 65 6c 79 20 69 6e 20 65 76  xtensively in ev
0330: 65 72 79 20 73 6d 61 72 74 70 68 6f 6e 65 2c 20  ery smartphone, 
0340: 61 6e 64 20 74 68 65 72 65 20 61 72 65 0a 72 6f  and there are.ro
0350: 75 67 68 6c 79 20 33 2e 35 20 62 69 6c 6c 69 6f  ughly 3.5 billio
0360: 6e 20 73 6d 61 72 74 70 68 6f 6e 65 73 20 69 6e  n smartphones in
0370: 20 61 63 74 69 76 65 20 75 73 65 2c 20 65 61 63   active use, eac
0380: 68 20 68 6f 6c 64 69 6e 67 20 68 75 6e 64 72 65  h holding hundre
0390: 64 73 20 6f 66 0a 53 51 4c 69 74 65 20 64 61 74  ds of.SQLite dat
03a0: 61 62 61 73 65 20 66 69 6c 65 73 2c 20 69 74 20  abase files, it 
03b0: 69 73 20 73 65 65 6d 73 20 6c 69 6b 65 6c 79 20  is seems likely 
03c0: 74 68 61 74 20 74 68 65 72 65 20 61 72 65 20 6f  that there are o
03d0: 76 65 72 20 6f 6e 65 20 74 72 69 6c 6c 69 6f 6e  ver one trillion
03e0: 0a 53 51 4c 69 74 65 20 64 61 74 61 62 61 73 65  .SQLite database
03f0: 73 20 69 6e 20 61 63 74 69 76 65 20 75 73 65 2e  s in active use.
0400: 0a 0a 3c 68 32 3e 4d 6f 73 74 20 57 69 64 65 6c  ..<h2>Most Widel
0410: 79 20 44 65 70 6c 6f 79 65 64 20 53 6f 66 74 77  y Deployed Softw
0420: 61 72 65 20 4d 6f 64 75 6c 65 20 6f 66 20 41 6e  are Module of An
0430: 79 20 54 79 70 65 3f 3c 2f 68 32 3e 0a 0a 3c 70  y Type?</h2>..<p
0440: 3e 53 51 4c 69 74 65 20 69 73 20 70 72 6f 62 61  >SQLite is proba
0450: 62 6c 79 20 6f 6e 65 20 6f 66 20 74 68 65 20 74  bly one of the t
0460: 6f 70 20 66 69 76 65 20 6d 6f 73 74 20 64 65 70  op five most dep
0470: 6c 6f 79 65 64 0a 73 6f 66 74 77 61 72 65 20 6d  loyed.software m
0480: 6f 64 75 6c 65 73 20 6f 66 20 61 6e 79 20 64 65  odules of any de
0490: 73 63 72 69 70 74 69 6f 6e 2e 20 20 0a 4f 74 68  scription.  .Oth
04a0: 65 72 20 6c 69 62 72 61 72 69 65 73 20 77 69 74  er libraries wit
04b0: 68 20 73 69 6d 69 6c 61 72 20 72 65 61 63 68 20  h similar reach 
04c0: 69 6e 63 6c 75 64 65 3a 0a 0a 3c 75 6c 3e 0a 3c  include:..<ul>.<
04d0: 6c 69 3e 0a 54 68 65 20 6f 72 69 67 69 6e 61 6c  li>.The original
04e0: 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f   <a href="http:/
04f0: 2f 7a 6c 69 62 2e 6e 65 74 22 3e 7a 6c 69 62 3c  /zlib.net">zlib<
0500: 2f 61 3e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69  /a> implementati
0510: 6f 6e 20 62 79 0a 4a 65 61 6e 2d 6c 6f 75 70 20  on by.Jean-loup 
0520: 47 61 69 6c 6c 79 20 61 6e 64 20 4d 61 72 6b 20  Gailly and Mark 
0530: 41 64 6c 65 72 2e 0a 3c 6c 69 3e 0a 54 68 65 20  Adler..<li>.The 
0540: 6f 72 69 67 69 6e 61 6c 20 72 65 66 65 72 65 6e  original referen
0550: 63 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f  ce implementatio
0560: 6e 20 66 6f 72 0a 3c 61 20 68 72 65 66 3d 22 68  n for.<a href="h
0570: 74 74 70 3a 2f 2f 77 77 77 2e 6c 69 62 70 6e 67  ttp://www.libpng
0580: 2e 6f 72 67 22 3e 6c 69 62 70 6e 67 3c 2f 61 3e  .org">libpng</a>
0590: 0a 3c 6c 69 3e 0a 4c 69 62 6a 70 65 67 20 66 72  .<li>.Libjpeg fr
05a0: 6f 6d 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22  om the <a href="
05b0: 68 74 74 70 3a 2f 2f 69 6a 67 2e 6f 72 67 22 3e  http://ijg.org">
05c0: 49 6e 64 65 70 65 6e 64 65 6e 74 20 4a 50 45 47  Independent JPEG
05d0: 20 47 72 6f 75 70 3c 2f 61 3e 0a 3c 2f 75 6c 3e   Group</a>.</ul>
05e0: 0a 0a 3c 70 3e 0a 4c 69 62 63 20 69 73 20 6f 6d  ..<p>.Libc is om
05f0: 69 74 74 65 64 20 66 72 6f 6d 20 74 68 65 20 61  itted from the a
0600: 62 6f 76 65 20 6c 69 73 74 20 65 76 65 6e 20 74  bove list even t
0610: 68 6f 75 67 68 0a 69 74 20 69 73 20 6d 6f 72 65  hough.it is more
0620: 20 63 6f 6d 6d 6f 6e 20 74 68 61 6e 20 53 51 4c   common than SQL
0630: 69 74 65 20 62 65 63 61 75 73 65 0a 6c 69 62 63  ite because.libc
0640: 20 69 73 20 6e 6f 74 20 61 20 73 69 6e 67 6c 65   is not a single
0650: 20 73 6f 66 74 77 61 72 65 20 63 6f 6d 70 6f 6e   software compon
0660: 65 6e 74 20 62 75 74 20 72 61 74 68 65 72 20 73  ent but rather s
0670: 65 76 65 72 61 6c 0a 63 6f 6d 70 65 74 69 6e 67  everal.competing
0680: 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73   implementations
0690: 20 28 65 78 3a 20 42 53 44 20 76 73 2e 20 47 4e   (ex: BSD vs. GN
06a0: 55 29 20 77 69 74 68 20 73 69 6d 69 6c 61 72 20  U) with similar 
06b0: 69 6e 74 65 72 66 61 63 65 73 2e 0a 54 68 65 72  interfaces..Ther
06c0: 65 20 61 72 65 20 61 6c 73 6f 20 69 6e 64 65 70  e are also indep
06d0: 65 6e 64 65 6e 74 20 69 6d 70 6c 65 6d 65 6e 74  endent implement
06e0: 61 74 69 6f 6e 73 20 6f 66 20 6c 69 62 6a 70 65  ations of libjpe
06f0: 67 20 61 6e 64 20 6c 69 62 70 6e 67 2c 0a 74 68  g and libpng,.th
0700: 6f 75 67 68 20 69 6e 20 74 68 6f 73 65 20 63 61  ough in those ca
0710: 73 65 73 20 74 68 65 20 63 61 6e 6f 6e 69 63 61  ses the canonica
0720: 6c 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e  l implementation
0730: 73 20 61 72 65 20 76 65 72 79 20 70 6f 70 75 6c  s are very popul
0740: 61 72 2e 0a 3c 2f 70 3e 0a 0a 3c 70 3e 0a 50 72  ar..</p>..<p>.Pr
0750: 65 63 69 73 65 20 6e 75 6d 62 65 72 73 20 61 72  ecise numbers ar
0760: 65 20 64 69 66 66 69 63 75 6c 74 20 74 6f 20 6f  e difficult to o
0770: 62 74 61 69 6e 20 61 6e 64 20 73 6f 20 65 78 61  btain and so exa
0780: 63 74 20 72 61 6e 6b 69 6e 67 73 0a 61 72 65 20  ct rankings.are 
0790: 69 6d 70 6f 73 73 69 62 6c 65 2e 20 20 42 75 74  impossible.  But
07a0: 20 6f 75 72 20 62 65 73 74 20 67 75 65 73 73 20   our best guess 
07b0: 69 73 20 74 68 61 74 20 53 51 4c 69 74 65 20 69  is that SQLite i
07c0: 73 20 74 68 65 20 73 65 63 6f 6e 64 0a 6d 6f 73  s the second.mos
07d0: 74 6c 79 20 77 69 64 65 6c 79 20 64 65 70 6c 6f  tly widely deplo
07e0: 79 65 64 20 73 6f 66 74 77 61 72 65 20 6c 69 62  yed software lib
07f0: 72 61 72 79 2c 20 61 66 74 65 72 20 6c 69 62 7a  rary, after libz
0800: 2e 0a 53 6f 6d 65 20 63 6f 6d 6d 65 6e 74 61 74  ..Some commentat
0810: 6f 72 73 20 6f 62 73 65 72 76 65 20 74 68 61 74  ors observe that
0820: 20 53 51 4c 69 74 65 20 74 65 6e 64 73 0a 74 6f   SQLite tends.to
0830: 20 62 65 20 73 74 61 74 69 63 61 6c 6c 79 20 6c   be statically l
0840: 69 6e 6b 65 64 20 61 6e 64 20 74 68 75 73 20 68  inked and thus h
0850: 61 76 65 20 6d 75 6c 74 69 70 6c 65 20 69 6e 73  ave multiple ins
0860: 74 61 6e 63 65 73 20 6f 6e 0a 65 61 63 68 20 6d  tances on.each m
0870: 61 63 68 69 6e 65 2c 20 77 68 65 72 65 61 73 20  achine, whereas 
0880: 6c 69 62 7a 20 74 65 6e 64 73 20 74 6f 20 68 61  libz tends to ha
0890: 76 65 20 6a 75 73 74 0a 61 20 73 69 6e 67 6c 65  ve just.a single
08a0: 20 69 6e 73 74 61 6e 63 65 20 70 65 72 20 6d 61   instance per ma
08b0: 63 68 69 6e 65 20 69 6e 20 74 68 65 20 66 6f 72  chine in the for
08c0: 6d 20 6f 66 20 61 20 73 68 61 72 65 64 20 6c 69  m of a shared li
08d0: 62 72 61 72 79 20 6f 72 20 44 4c 4c 2e 0a 53 6f  brary or DLL..So
08e0: 20 65 76 65 6e 20 74 68 6f 75 67 68 20 74 68 65   even though the
08f0: 20 6e 75 6d 62 65 72 20 6f 66 20 64 65 76 69 63   number of devic
0900: 65 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 6c 69  es containing li
0910: 62 7a 0a 6d 61 79 20 62 65 20 67 72 65 61 74 65  bz.may be greate
0920: 72 20 74 68 61 6e 20 74 68 65 20 6e 75 6d 62 65  r than the numbe
0930: 72 20 6f 66 0a 64 65 76 69 63 65 73 20 74 68 61  r of.devices tha
0940: 74 20 63 6f 6e 74 61 69 6e 20 53 51 4c 69 74 65  t contain SQLite
0950: 2c 20 74 68 65 20 74 6f 74 61 6c 20 6e 75 6d 62  , the total numb
0960: 65 72 20 6f 66 20 69 6e 73 74 61 6e 63 65 73 20  er of instances 
0970: 70 65 72 20 64 65 76 69 63 65 0a 3c 65 6d 3e 6d  per device.<em>m
0980: 69 67 68 74 3c 2f 65 6d 3e 20 62 65 20 68 69 67  ight</em> be hig
0990: 68 65 72 20 66 6f 72 20 53 51 4c 69 74 65 20 61  her for SQLite a
09a0: 6e 64 20 73 6f 20 53 51 4c 69 74 65 20 3c 65 6d  nd so SQLite <em
09b0: 3e 6d 69 67 68 74 3c 2f 65 6d 3e 0a 62 65 20 74  >might</em>.be t
09c0: 68 65 20 73 69 6e 67 6c 65 20 6d 6f 73 74 20 77  he single most w
09d0: 69 64 65 6c 79 20 64 65 70 6c 6f 79 65 64 20 61  idely deployed a
09e0: 6e 64 20 75 73 65 64 20 73 6f 66 74 77 61 72 65  nd used software
09f0: 20 63 6f 6d 70 6f 6e 65 6e 74 2e 0a 3c 2f 70 3e   component..</p>
0a00: 0a                                               .