Like many PHP developers, when I first started building dynamic websites, I used relatively simple data structures. PHP is indeed very convenient in connecting to databases (Translator's Note: Some people think that PHP does not have a unified interface when connecting to different databases, which is inconvenient. In fact, this can be done through some extension libraries), you don't need to You can build and use a database by looking at a large number of design documents, which is one of the main reasons for PHP's success.
Some time ago, a rather senior programmer asked me what an index was. I was very surprised. I thought this would never be a drop in the ocean, because there are thousands of developers (probably most of them). (who use MySQL) have no formal training on databases. Although they have done some development for customers, they know less about how to build appropriate indexes for databases, so I came up with the idea of writing a related article. .
The most common case is to build an index for the fields that appear in the where clause. To facilitate the description, we first create a table as follows.
CREATE TABLE mytable (
id serial primary key,
category_id int not null default 0,
user_id int not null default 0,
);
It’s very simple, but it’s enough to explain this problem. If you often use statements similar to the following when querying:
SELECT * FROM mytable WHERE category_id=1;
The most direct way to deal with it is to create a simple index for category_id:
CREATE INDEX mytable_categoryid
ON mytable (category_id);
OK, done? Don't be happy yet, what if you have more than one selection criteria? For example:
SELECT * FROM mytable WHERE category_id=1 AND user_id=2;
Your first reaction may be to create an index for user_id. No, this is not an optimal approach. You can create multiple indexes.
http://www.bkjia.com/PHPjc/531988.html