Home Backend Development PHP Tutorial 5 Reasons Why You Should Use SQLite in 2016

5 Reasons Why You Should Use SQLite in 2016

Jul 29, 2016 am 09:06 AM
http sql sqlite

Top 5 reasons why you should use SQLite in 2016
What? Don’t you know SQLite yet? Well let me tell you, SQLite is an amazing database capable of doing real work in a real production environment. In this article, I will briefly outline 5 reasons why I think you should use SQLite in 2016.
1. Simple management. Have you managed a Postgres database before? There is quite a lot that you need to understand and learn in order to ensure the correct configuration of the database server (shared buffers, effective cache size, work mem, maintaining work mem, wal buffers...). Upgrading can be a scary process, and you may need to take the database offline, run a dedicated upgrade program, and then silently hope that it will still work when you backup it back. Furthermore, do you know where your Postgres database is actually stored? Can you point to a random place and say, "That's my database"? (As we all know, there are many cases where the needs of an application can only be met using Postgres (or MySQL, Oracle, SQL Server, etc.). But my purpose in saying this here, is not that. I just want to highlight managing a SQLite database The difference between other typical database servers. )
SQLite is easy to manage - because it is a single file (or in some cases a file + transaction log). The file format is very stable across many major versions, so assuming I have a SQLite database file starting with version 3.0.0 (in 2004), then I can also read it using the latest SQLite 3.10.0. If I want to put the database files on a USB stick, then I just copy the files, or better still, save the files in a dropbox folder. If I want to backup every night, then I just sync the database files to S3. If I wanted to share some data analysis I was doing with a colleague, I could send them a copy of the database file and they could use it. The database exists in the form of a single file and has a stable format, which is a feature of SQLite.
What’s more, SQLite is easy to configure. SQLite functionality can be managed in two ways: compilation flags and PRAGMA statements (runtime configuration). There is no such thing as a configuration file, you just build the library you want and then configure the runtime options when you create the database connection.
2. Continuously improving and rock-solid stability. SQLite is actively developed by some truly amazing software engineers. High-quality new features are being added at an astonishing rate. Just recently, SQLite added support for JSON data via the json1 extension. SQLite also released an improved version of the full-text search extension, which includes result ranking using the BM25 algorithm. In addition to adding new features, SQLite developers are also working to make the library more performant. In version 3.8.11, the release notes include this little blurb: SQLite now runs twice as fast as version 3.8.0 and three times as fast as version 3.3.9.
Despite so many changes and improvements, SQLite rarely introduces bugs. SQLite's test suite is widely regarded as one of the best in the industry, and a page on how SQLite is tested frequently appears on HackerNews as developers come across this impressive documentation.
3. Scalable and controllable. My personal favorite feature about SQLite is its scalability. Because SQLite is embedded through the application, it runs in the same address space and can execute application code on your behalf. Whether it is the Python standard library SQLite driver - pysqlite, or the optional driver aspw, both can provide APIs that define custom SQL functions, aggregate functions, and collations. aspw goes one step further and provides APIs that can also be used to define virtual tables and virtual file systems! Virtual tables, currently only supported by ASPW, allow you to define a table in code and then query it as if it were a normal SQL table, even though the backup data may be entirely dynamic. For example, I wrote a simple virtual table that lets you query Redis as if it were a SQL table.
You can also write a function with the same name, which is a function used to return 0...n rows of results. One example is a regular expression retrieval function that processes input and produces lines that match a token. I wrote a library, sqlite-vtfunc, that makes writing these types of functions very easy. Virtually every aspect of SQLite operates through your application.
4. As fast as lightning. SQLite is very fast. Since it runs on the same machine, there is no network burden when executing queries or reading results. And because it runs in the same address space, there is no wire protocol, serialization, or communication over unix sockets. SQLite can also run on mobile devices when resources are scarce and efficiency is critical. SQLite also supports a large number of compilation flags, allowing you to remove features you don't intend to use.
SQLite’s speed makes up for one of its biggest shortcomings, which is database file locking for writing. Incredibly fast writing of data, database locking only becomes an issue when there are a large number of concurrent writes being serviced.
5. WAL mode. Version 3.7.0 of SQLite adds a new logging method that utilizes write-ahead logging. While not really exciting news in and of itself, what this means to web application developers (or anyone dealing with concurrency) is that read services will no longer block write services, and vice versa. In other words, reading and writing can occur simultaneously. If there is no WAL mode, then in order to write to the database, the writing service needs exclusive access to the database, and the reading service cannot occur until the writing service ends. However, it's worth mentioning that even if you don't enable WAL mode, writes to the service typically occur in milliseconds. This time is so short that you will only notice a problem if you have high concurrency or if you write very long transactions.
Extra points for: BerkeleyDB. BerkeleyDB's SQLite integration can give application developers the even better performance they need for concurrent database access because instead of locking the entire database, BerkeleyDB only needs to lock individual pages. This allows BerkeleyDB to scale more efficiently under concurrent database loads, providing transactions that do not compete for the same page of data. BerkeleyDB also supports multi-version concurrency control (MVCC), which allows read operations to continue to occur on the data page and process the data through a write transaction.
Another benefit of BerkeleyDB is that it improves efficiency. In other words, BerkeleyDB can use fewer system resources and perform fewer system calls. You can read more details in this white paper and this brief technical overview. BerkeleyDB's SQL interface is a drop-in replacement for SQLite and supports the same API and functionality. BerkeleyDB provides some additional features such as replication (SQLite has a backup tool, but I don't think it is as powerful as BDB's), encryption, and of course all the features of BerkeleyDB itself.
A major disadvantage of using BerkeleyDB is that it is very sensitive to configuration values, and getting the correct page size, cache size, and other settings requires a lot of knowledge. Another drawback is the license - to read more about the BerkeleyDB license, check out Oracle's licensing page.
Finally, I hope you can give SQLite a try. Don't listen to the conventional wisdom from those who say it's not suitable for production, or that it's not suitable for use in web applications.
If you want to learn more, SQLite itself has a great documentation on when to use SQLite, which also covers a range of situations where another RDBMS would work better.
Brotherhood Gao Luofeng recruits disciples for free: http://www.hdb.com/party/lzcw-comm.html
Receive LAMP Brothers’ original PHP video tutorial CD/"Explain PHP in detail" free of charge. For details, please contact the official website customer service:
http://www.lampbrother.net
【Brothers IT Education】Learn PHP, Linux, HTML5, UI, Android and other video tutorials (courseware + notes + videos)!
Network disk tutorial download: http://pan.baidu.com/s/1sjOJiAL

The above introduces the five major reasons why you should use SQLite in 2016, including aspects of it. I hope it will be helpful to friends who are interested in PHP tutorials.

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What is the difference between HQL and SQL in Hibernate framework? What is the difference between HQL and SQL in Hibernate framework? Apr 17, 2024 pm 02:57 PM

HQL and SQL are compared in the Hibernate framework: HQL (1. Object-oriented syntax, 2. Database-independent queries, 3. Type safety), while SQL directly operates the database (1. Database-independent standards, 2. Complex executable queries and data manipulation).

Usage of division operation in Oracle SQL Usage of division operation in Oracle SQL Mar 10, 2024 pm 03:06 PM

"Usage of Division Operation in OracleSQL" In OracleSQL, division operation is one of the common mathematical operations. During data query and processing, division operations can help us calculate the ratio between fields or derive the logical relationship between specific values. This article will introduce the usage of division operation in OracleSQL and provide specific code examples. 1. Two ways of division operations in OracleSQL In OracleSQL, division operations can be performed in two different ways.

Comparison and differences of SQL syntax between Oracle and DB2 Comparison and differences of SQL syntax between Oracle and DB2 Mar 11, 2024 pm 12:09 PM

Oracle and DB2 are two commonly used relational database management systems, each of which has its own unique SQL syntax and characteristics. This article will compare and differ between the SQL syntax of Oracle and DB2, and provide specific code examples. Database connection In Oracle, use the following statement to connect to the database: CONNECTusername/password@database. In DB2, the statement to connect to the database is as follows: CONNECTTOdataba

Detailed explanation of the Set tag function in MyBatis dynamic SQL tags Detailed explanation of the Set tag function in MyBatis dynamic SQL tags Feb 26, 2024 pm 07:48 PM

Interpretation of MyBatis dynamic SQL tags: Detailed explanation of Set tag usage MyBatis is an excellent persistence layer framework. It provides a wealth of dynamic SQL tags and can flexibly construct database operation statements. Among them, the Set tag is used to generate the SET clause in the UPDATE statement, which is very commonly used in update operations. This article will explain in detail the usage of the Set tag in MyBatis and demonstrate its functionality through specific code examples. What is Set tag Set tag is used in MyBati

What does the identity attribute in SQL mean? What does the identity attribute in SQL mean? Feb 19, 2024 am 11:24 AM

What is Identity in SQL? Specific code examples are needed. In SQL, Identity is a special data type used to generate auto-incrementing numbers. It is often used to uniquely identify each row of data in a table. The Identity column is often used in conjunction with the primary key column to ensure that each record has a unique identifier. This article will detail how to use Identity and some practical code examples. The basic way to use Identity is to use Identit when creating a table.

Understand common application scenarios of web page redirection and understand the HTTP 301 status code Understand common application scenarios of web page redirection and understand the HTTP 301 status code Feb 18, 2024 pm 08:41 PM

Understand the meaning of HTTP 301 status code: common application scenarios of web page redirection. With the rapid development of the Internet, people's requirements for web page interaction are becoming higher and higher. In the field of web design, web page redirection is a common and important technology, implemented through the HTTP 301 status code. This article will explore the meaning of HTTP 301 status code and common application scenarios in web page redirection. HTTP301 status code refers to permanent redirect (PermanentRedirect). When the server receives the client's

How to solve the 5120 error in SQL How to solve the 5120 error in SQL Mar 06, 2024 pm 04:33 PM

Solution: 1. Check whether the logged-in user has sufficient permissions to access or operate the database, and ensure that the user has the correct permissions; 2. Check whether the account of the SQL Server service has permission to access the specified file or folder, and ensure that the account Have sufficient permissions to read and write the file or folder; 3. Check whether the specified database file has been opened or locked by other processes, try to close or release the file, and rerun the query; 4. Try as administrator Run Management Studio as etc.

Database technology competition: What are the differences between Oracle and SQL? Database technology competition: What are the differences between Oracle and SQL? Mar 09, 2024 am 08:30 AM

Database technology competition: What are the differences between Oracle and SQL? In the database field, Oracle and SQL Server are two highly respected relational database management systems. Although they both belong to the category of relational databases, there are many differences between them. In this article, we will delve into the differences between Oracle and SQL Server, as well as their features and advantages in practical applications. First of all, there are differences in syntax between Oracle and SQL Server.

See all articles