SQLite - рдПрдХ рдорд╣рд╛рди рдПрдореНрдмреЗрдб рдбреЗрдЯрд╛рдмреЗрд╕ (рднрд╛рдЧ 1)

рдлрд┐рд░ рднреА, рдореИрдВрдиреЗ SQLite рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рдЗрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЕрдкрдиреЗ 3 рд╕рд╛рд▓ рдХреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рд╡рд┐рд╖рдп рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдХрдо рдЬрд╛рдирдХрд╛рд░реА рд╣реИред

рднрд╛рдЧ реи
рднрд╛рдЧ рей

рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдкрд░рд┐рдЪрдпред

рдпрд╣ рд▓реЗрдЦ рд╢реБрд░реБрдЖрддреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИред
рдпрд╣ рдПрдХ SQL рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдирд╣реАрдВ рд╣реИред
рд╡рд╣ SQLite рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдпрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рд╡рд╣ SQLite рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдпрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рд▓реЗрдЦ рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ рдирд╡рд╛рдЧрдВрддреБрдХ рд╕реЗ SQLite рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЙрдирдХрд╛ рдЙрддреНрддрд░ рджреЗрддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рдВрд░рдЪрдирд╛ рдХрд░рдирд╛ рдХрдо рд╕реЗ рдХрдо рдереЛрдбрд╝рд╛ рдЖрд╕рд╛рди рд╣реИ)ред



SQLite рдХреНрдпрд╛ рд╣реИ?

SQLite рдПрдХ рдПрдореНрдмреЗрдбреЗрдб рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ рдЬреЛ SQL рдХрдорд╛рдВрдб рдХреЗ рдХрд╛рдлреА рдкреВрд░реНрдг рд╕реЗрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реНрд░реЛрдд рдХреЛрдб (рд╕реА рднрд╛рд╖рд╛ рдореЗрдВ) рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред

SQLite рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбреЛрдореЗрди рдореЗрдВ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдХреЛрдИ рдЙрдкрдпреЛрдЧ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд╣реИрдВред

рд╡реЗрдмрд╕рд╛рдЗрдЯ (рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдЙрддреНрдХреГрд╖реНрдЯ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд╕рд╛рде): http://sqlite.org

рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг: 3.7.13

рдЖрдк рдЦреБрдж SQLite рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА Windows DLL рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реВрдВред

рдбрд╛рдЙрдирд▓реЛрдб рдкреГрд╖реНрда: http://sqlite.org/download.html

рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП, рддрдерд╛рдХрдерд┐рдд "рд╕рдорд╛рдореЗрд▓рди" ,
рдпрд╛рдиреА C + sqlite3.h рдореЗрдВ рдПрдХрд▓ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ SQLite рд╕реНрд░реЛрддред

SQlite рдХреЛрдб рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдирд╛рд╡рд╢реНрдпрдХ рдирд┐рд╢реНрддрд┐рдХреА рдХреЛ рдлреЗрдВрдХрдиреЗ рд╕реЗ, рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ DEFINE рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

SQLite рдХрд┐рддрдирд╛ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИ?

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ: рд╡рд╣ рд╣рд░ рдЬрдЧрд╣ рд╣реИред рдХрдо рд╕реЗ рдХрдо рдХрд┐рд╕реА рднреА рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдкрд░ред

рдпрд╣ рдХрд┐рддрдирд╛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИ?

рдмрд╣реБрддред рдЬрдм рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХрдИ рдЧрдВрднреАрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдгреЛрдВ (~ 2 рдорд┐рд▓рд┐рдпрди рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ) рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИ, рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдб рдХрд╡рд░реЗрдЬ 100% (рдЕрдЧрд╕реНрдд 2009 рд╕реЗ) рд╣реИред

рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреНрдпрд╛ рдЕрдиреНрдп рдЙрдкрдХрд░рдг рджреЗрддреЗ рд╣реИрдВ?

рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реЛрд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЙрдкрд▓рдмреНрдз рд╣реИ (SQLlite3.exe, "SQLite рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╢реЗрд▓)"ред

рдХреНрдпрд╛ рд╡рд╣ рд╕рдм рд╣реИ?

рд╣рд╛рдБ, рдореБрдЦреНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ - рдпрд╣ рдмрд╛рдд рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдиреНрдп рд▓реЛрдЧ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдЖрджрд┐ рдХреЛ рд▓рд┐рдЦрддреЗ рд╣реИрдВред
рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВрдиреЗ рд╕рд╣реА рдирд╣реАрдВ рдкрд╛рдпрд╛ рд╣реИ рдФрд░ рдХрдВрд╕реЛрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

"рдПрд╕рдХреНрдпреВрдПрд▓ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рд╕реЗрдЯ" рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ?

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ SQL рд╡рд┐рднрд┐рдиреНрди рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛ред рдмрдбрд╝реЗ рдирд┐рд░реНрдорд╛рддрд╛рдУрдВ рдиреЗ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдзрдХреЗрд▓рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рдФрд░ рдпрджреНрдпрдкрд┐ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдорд╛рдирдХреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (SQL 92), рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдореЗрдВ, рд╕рднреА рдмрдбрд╝реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдорд╛рдирдХреЛрдВ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ + рдЙрдирдХрд╛ рдЕрдкрдирд╛ рдХреБрдЫ рд╣реИред рдЗрд╕рд▓рд┐рдП, SQLite "рдиреНрдпреВрдирддрдо, рд▓реЗрдХрд┐рди рдкреВрд░реНрдг рд╕реЗрдЯ" рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рд╕реЗ рдЬреАрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдЬрдЯрд┐рд▓ рдЪреАрдЬреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдИ рдорд╛рдпрдиреЛрдВ рдореЗрдВ SQL 92 рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред
рдФрд░ рдЗрд╕рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдорд╛рдирдХ рдирд╣реАрдВред

SQL рд╕рдкреЛрд░реНрдЯ рдореЗрдВ рдХреНрдпрд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рдЖрдк рдХрд┐рд╕реА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдХреЙрд▓рдо рдХреЛ рд╣рдЯрд╛ рдпрд╛ рдмрджрд▓ рдирд╣реАрдВ рд╕рдХрддреЗ (ALD TABLE DROP COLUMN ..., ALTER TABLE ALTER COLUMN ...)ред
рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрдбрд╝реЗ RDBMS рдЬрд┐рддрдирд╛ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдирд╣реАрдВред
рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИ, рд▓реЗрдХрд┐рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рдЕрдХреНрд╖рдо рд╣реИред
рдХреЛрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд UNICODE рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИ (рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ)ред
рдХреЛрдИ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд╛рд░реНрдпрд╡рд┐рдзрд┐рдпрд╛рдБ рдирд╣реАрдВред

рдФрд░ рдХреНрдпрд╛ рдЕрдЪреНрдЫрд╛ рдпрд╛ рдЕрд╕рд╛рдорд╛рдиреНрдп рд╣реИ?

a) рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рдПрдХ рдЖрднрд╛рд╕реА рдкрдВрдХреНрддрд┐рдмрджреНрдз рдХреЙрд▓рдо рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ 64-рдмрд┐рдЯ рд╕рдВрдЦреНрдпрд╛ (рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп) рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддрд╛ рд╣реИред
рдЖрдк рдЕрдкрдиреЗ INTEGER PRIMARY KEY рдХреЙрд▓рдо рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдпрд╣ рдХреЙрд▓рдо рдкрдВрдХреНрддрд┐рдмрджреНрдз рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдЕрдкрдиреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде, рдпрд╣ рдирд╛рдо рдкрдВрдХреНрддрд┐ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред
рд░рд┐рдХреЙрд░реНрдб рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдкрдВрдХреНрддрд┐рдмрджреНрдз рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЖрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ (рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдлрд┐рд░ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдЧрд╛)ред
рд╡рд┐рд╡рд░рдг: www.sqlite.org/autoinc.html
рдмреА) рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдореЗрдореЛрд░реА рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдФрд░ рдореИрдВ рдЖрдкрдХреЛ рдмрд╛рдж рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛);
рдЧ) рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди: рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдХ рдПрдХрд▓ рдлрд╝рд╛рдЗрд▓ (рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкреНрд░рд╛рд░реВрдк рдореЗрдВ) рд╣реИ;
d) рд╕реНрддрдВрдн рдХрд╛ рдкреНрд░рдХрд╛рд░ рдЗрд╕ рд░рд┐рдХреЙрд░реНрдб рдлрд╝реАрд▓реНрдб рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдорд╛рди рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдХрд┐рд╕реА рднреА рдореВрд▓реНрдп рдХреЛ рдХрд┐рд╕реА рднреА рдХреЙрд▓рдо рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ;
рдИ) рдХрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдп (рдЬреЛ рдПрд╕рдХреНрдпреВрдПрд▓ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ): www.sqlite.org/lang_corefunc.html;

рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдЧрд▓рдд рдерд╛? рд╣рдореЗрдВ рд╕реНрддрдВрдн рдкреНрд░рдХрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?

рд╕реНрддрдВрдн рдХрд╛ рдкреНрд░рдХрд╛рд░ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдореВрд▓реНрдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХреИрд╕реЗ рдХреА рдЬрд╛рдП (рдЖрдкрдХреЛ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рдЕрдВрджрд░, рдХрд╣рддреЗ, рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╕рдордп рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдореЗрдВ рд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред
рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреЛ рдХреЙрд▓рдо рдореЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдХрдордЬреЛрд░ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреА рддрд░рд╣ рдХреБрдЫред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдордиреЗ рдПрдХ рдХреЙрд▓рдо рдХреЛ "рдП рдЗрдВрдЯреАрдЬрд░" рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИред
Sqlite рдЖрдкрдХреЛ рдЗрд╕ рдХреЙрд▓рдо (999, "рдПрдмреАрд╕реА", "123", 678.525) рдореЗрдВ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдореВрд▓реНрдп рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдпрджрд┐ рд╕рдореНрдорд┐рд▓рд┐рдд рдореВрд▓реНрдп рдкреВрд░реНрдгрд╛рдВрдХ рдирд╣реАрдВ рд╣реИ, рддреЛ SQlite рдкреВрд░реНрдгрд╛рдВрдХ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред
рдпрд╛рдиреА рд╕реНрдЯреНрд░рд┐рдВрдЧ "123" рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ 123 рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛, рдФрд░ рд╢реЗрд╖ рдорд╛рди "рдЬреИрд╕рд╛ рд╣реИ" рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред

рддреЛ рдЖрдк рдХреЙрд▓рдо рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдмрд╣реБрдд рдмрд╛рд░ рдпрд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдХреНрд░рд┐рдПрдЯ рдЯреЗрдмрд▓ рдлреВ (рдП, рдмреА, рд╕реА, рдбреА) ред

рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдХреНрдпрд╛ рдХреЛрдИ рд╕рд░реНрд╡рд░ рдирд╣реАрдВ рд╣реИ?

рдХреЛрдИ рд╕рд░реНрд╡рд░ рдирд╣реАрдВ рд╣реИ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрд╡рдпрдВ рдПрдХ рд╕рд░реНрд╡рд░ рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдВрдЪ "рдХрдиреЗрдХреНрд╢рди" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ (рдУрдПрд╕ рдлрд╝рд╛рдЗрд▓ рд╣реИрдВрдбрд▓ рдЬреИрд╕реА рдХреБрдЫ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреАрдПрд▓рдПрдл рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЦреЛрд▓рддреЗ рд╣реИрдВред рдЬрдм рдЦреЛрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣ рдПрдХ рд╣реА рдпрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдПрдХ рд╣реА рдбреЗрдЯрд╛рдмреЗрд╕ (рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдХреЗ рд▓рд┐рдП рдХрдИ рдХрдиреЗрдХреНрд╢рди рдЦреЛрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред
рд╕рд┐рд╕реНрдЯрдо рдЗрд╕ рдХрд╛рдо рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП OS- рд╕реНрддрд░ рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕реЗрд╕ рд▓реЙрдХрд┐рдВрдЧ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
(рдпреЗ рддрдВрддреНрд░ рдЖрдорддреМрд░ рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ рдбреНрд░рд╛рдЗрд╡ рдкрд░ рдЦрд░рд╛рдм рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде SQlite рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ)ред
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, Sqlite рдиреЗ "рдХрдИ рдкрдврд╝реЗ - рдПрдХ рд▓рд┐рдЦрддреЗ рд╣реИрдВ" рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ред
рдпрд╣реА рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдкрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд▓рд┐рдЦрддрд╛ рд╣реИред рдпрджрд┐ рдЕрдиреНрдп рдХрдиреЗрдХреНрд╢рди рднреА рд▓рд┐рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ SQLITE_BUSY рддреНрд░реБрдЯрд┐ рдХреЛ рдкрдХрдбрд╝ рд▓реЗрдВрдЧреЗред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдордп рд╕реАрдорд╛ рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рдХрдиреЗрдХреНрд╢рди, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╡реНрдпрд╕реНрддрддрд╛ рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛, SQLITE_BUSY рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдЧрд┐рд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрди рд╕реЗрдХрдВрдб рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░реЗрдЧрд╛ред

рдФрд░ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ?

рдпрд╛ рддреЛ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдФрд░ рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рднреА рдЕрдиреБрд░реЛрдз, рдпрд╛ рд╕рдВрднрд╡ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝реЗрдВ рдФрд░ рдПрд╕рдХреНрдпреВрдПрд▓ рдХреЗ рджреЛрд╣рд░рд╛рдП рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд░реЗрдВред
рдПрдХ рдФрд░ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ: рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ рдПрдХ рдирдпрд╛ рдкреНрд░рдХрд╛рд░ рдХрд╛ SQlite рд▓реЙрдЧ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджрд┐рдпрд╛: рдЖрдЧреЗ рд▓рд┐рдЦреЛ рд▓реЙрдЧ, рд╡рд╛рд▓ ред
рдпрджрд┐ рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд▓реЙрдЧ рдореЛрдб рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХрдИ рдХрдиреЗрдХреНрд╢рди рдПрдХ рд╕рд╛рде рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдЗрд╕ рдореЛрдб рдореЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рдлрд╛рдЗрд▓реЗрдВ рд▓реЗрддрд╛ рд╣реИред

рдареАрдХ рд╣реИ, рдЕрдм рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдЖрдпрд╛ рдХрд┐ SQLite рдХрд┐рддрдирд╛ рднрдпрд╛рдирдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ CACHE рдирд╣реАрдВ рд╣реИ?

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рднреА рдЖрдзреБрдирд┐рдХ рдЖрд░рдбреАрдмреАрдПрдордПрд╕ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╕рд╛рдЭрд╛ рдХреИрд╢ рдХреЗ рдмрд┐рдирд╛ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИрдВ, рдЬреЛ рд╕рдВрдХрд▓рд┐рдд рдкреИрд░рд╛рдореАрдЯрд░рдпреБрдХреНрдд рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рддрд░рд╣ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд┐рд╢реНрддрд┐рдХреА рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕рд░реНрд╡рд░ рд╡реНрдпрд╕реНрдд рд╣реИ, рдЬреЛ рдпрд╣рд╛рдВ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдПрдХ рдПрдХрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рднреАрддрд░, SQlite рдХрдИ рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреЗ рдмреАрдЪ рдХреИрд╢ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдпрд╣рд╛рдВ рдкрдврд╝реЗрдВ: www.sqlite.org/sakedcache.html ) рдФрд░ рдХреБрдЫ рдореЗрдореЛрд░реА рд╕реЗрд╡ рдХрд░реЗрдВред

рдФрд░ рд╣рд░ рдХреЛрдИ рд╢рд┐рдХрд╛рдпрдд рдХреНрдпреЛрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ SQLite рдзреАрдорд╛ рд╣реИ?

рджреЛ рдХрд╛рд░рдгред рдкрд╣рд▓реА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИред рд╡реЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред
рджреВрд╕рд░рд╛ рд▓реЗрдирджреЗрди рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рдХреА рдЧрд▓рддрдлрд╣рдореА рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХрд┐рд╕реА рднреА рдЖрджреЗрд╢ рдХреЗ рдмрд╛рдж, Sqlite рд▓реЗрдирджреЗрди рдХрд░реЗрдЧрд╛ (рдпрд╛рдиреА, рдЬрдм рддрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрд┐рдЬрд▓реА рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╕рдВрдЧрдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИ) рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред рд╡реНрдпрд╛рдореЛрд╣ рдореЛрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░, SQLite рдЙрд╕ рдкрд░ 50 рд╕реЗ 300 рдПрдордПрд╕ рддрдХ рдЦрд░реНрдЪ рдХрд░реЗрдЧрд╛ (рдбрд┐рд╕реНрдХ рдкрд░ рдбреЗрдЯрд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рдЕрдВрдд рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ)ред

рдХреНрдпрд╛ рдХрд░реЗрдВ? рдореБрдЭреЗ 100 рд╣рдЬрд╝рд╛рд░ рд░рд┐рдХреЙрд░реНрдб рдФрд░ рддреЗрдЬрд╝ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ!

рдЕрдиреБрдХреНрд░рдорд┐рдд рд╣рдЯрд╛рдПрдВ, рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рдореЛрдб рдХреЛ рдмрдВрдж рдХрд░реЗрдВ (рдпрд╛ NORMAL), N рд╣рдЬрд╛рд░ рдХреЗ рднрд╛рдЧ рдореЗрдВ рдбрд╛рд▓реЗрдВ (N - рдкрд┐рдХ, 5000 рдкрд╣рд▓реЗ рд▓реЗрдВ)ред рднрд╛рдЧ рдбрд╛рд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, BEGIN TRANSACTION рдХрд░реЗрдВ, рдЙрд╕рдХреЗ рдмрд╛рдж - COMMIT рдХрд░реЗрдВред

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрдХ рдЧрд▓рддреА рдорд┐рд▓реА! рдХреИрд╕реЗ рдХрд░реЗрдВ рд░рд┐рдкреЛрд░реНрдЯ?

рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВред

рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ SQLite рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдбрд░рд╛рд╡рдирд╛ рд╣реИ - рдпрд╣ рд╣рд░ рдЬрдЧрд╣ рд╣реИред рдпрд╣ рдХреЛрдИ рдордЬрд╛рдХ рдирд╣реАрдВ рд╣реИред
рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдПрдХ рд╢рд╛рдлреНрдЯ рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдпрд╛ рддреЛ рдЧрд▓рддрдлрд╣рдореА рдХреЗ рдХрд╛рд░рдг рдереЗ, рдпрд╛ рдПрдХ рдЫрд┐рдкреЗ рд╣реБрдП рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рдереЗред рдЙрдиреНрд╣реЛрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЗ рд╕реАрдзреЗ рд╕реНрд╡рд╛рдЧрдд рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред
рддреЛ рдЖрдкрдХреЛ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рд╡рд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЙрдореНрдореАрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕реНрдерд┐рддрд┐ рдереА рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ SQLIte рджреЛрд╖ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдереАред рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рдорд╛рдЪрд╛рд░ рдкрддреНрд░ рдкрд░ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ред рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, SQLite рд╡реНрдпрд╡рд╣рд╛рд░ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

SQLite рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ ред

рдЬрд╛рд░реА рд░рдЦрд╛ рдЬрд╛рдПред

Source: https://habr.com/ru/post/In149356/


All Articles