The PHP page has a page view statistics of 200 concurrency per second, causing insert to put a lot of pressure on mysql
In the lnmp environment, other page contents are cached, and there is not much load. It is this pageview statistics function that puts a lot of pressure on mysql. Do you have any solutions?
Everyone says not to use MySQL to do it. 200 concurrency per second is not difficult for MySQL. And if you switch to Redis and Memcached, not to mention persistence, the amount of business code and operation and maintenance deployment is not small.
I will give you a few suggestions, try to make your operation and maintenance deployment and business code changes as small as possible.
You can do master-slave separation. Don’t perform high-concurrency insertions on one library while also doing a lot of statistical calculations. After separation, the query is done in the slave database (or even imported into a specialized distributed system such as Hive), and the index can be removed on the main database to improve insertion performance. This method requires almost no changes to the business code (just change the database configuration file). MySQL operation and maintenance deployment can also be done online during a business low point.
If you can accept a small amount of business code (PHP) changes, there are two suggestions:
1. Divide databases and tables. The total amount of data in each table will be smaller, and the operation performance will be better, especially It is the MyISAM table of the slave database. There may be some queries before you insert it, such as checking whether this IP is in the database and whether it has been counted before.
2. Use the HandlerSocket plug-in to bypass SQL Parser and directly operate the stored file. If it is possible in business, you can also use bulk insert. MySQL InnoDB also launched the InnoDB NoSQL Plugin similar to HandlerSocket, which uses the memcached protocol and shares the InnoDB Buffer. You no longer have to worry about how MySQL and Memcached maintained data consistency before.