mysql enables rapid creation of indexes for millions of data
Test data A local table users has 100 million records. There is no index added to the corresponding field before creating this table, so you need to add an index to the table at this time. However, due to the large amount of data, the index addition may not be successful. After thinking of many ways, I finally succeeded in digging the hole.
Start preparations,
user table structure:
CREATE TABLE `users` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL, `add_time` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=1000001 DEFAULT CHARSET=latin1;
An error occurred when trying to use into outfile to export data in navicat:
select * from users into outfile 'users.txt'; //users.txt文件在mysql的dat
As shown below:
I checked online that it is the permissions set by mysql. You can use
show variables like '%secure% ';Check what is the current value of secure-file-priv?
You can see that the secure-file-priv parameter is used to limit which specification LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE() is passed to directory. When the value of secure_file_priv is null, it means that mysqld is restricted from importing and exporting. When the value of secure_file_priv is /tmp/, it means that the import and export of mysqld can only occur in the /tmp/ directory. When the value of secure_file_priv has no specific value, it means that There are no restrictions on the import | export of mysqld.
The exported data must be the specified path of this value before it can be exported. The default may be NULL (what I am looking at here is null ) means that export is prohibited, so you need to set it
Since I am using the my.ini file under the phpstudy, mysql installation path, set the path:
Note: Add double quotation marks to the path name ""
The error remains the same after restarting...
This parameter is not set in mysql.cnf, which means that this parameter is the default value null
So try to modify [mysqld] in mysql.cnf to add secure_file_priv =
The final result is as follows:
Restart mysql again
You can see users.txt Generated in the test database directory at the same level. . .
Then execute:
truncate users;
创建索引:
create index name using BTREE on users(name);
索引的方式有:BTREE、RTREE、HASH、FULLTEXT、SPATIAL,这里不再赘述他们的区别,网上有很多关于这块的介绍啦
导入文件到相应表users。
load data infile 'users.txt' into table users;
此方式在write 锁住情况下,或对外服务暂停时使用,线上不可能直接这样玩了。
相关推荐:
The above is the detailed content of mysql enables rapid creation of indexes for millions of data. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



MySQL is suitable for beginners because it is simple to install, powerful and easy to manage data. 1. Simple installation and configuration, suitable for a variety of operating systems. 2. Support basic operations such as creating databases and tables, inserting, querying, updating and deleting data. 3. Provide advanced functions such as JOIN operations and subqueries. 4. Performance can be improved through indexing, query optimization and table partitioning. 5. Support backup, recovery and security measures to ensure data security and consistency.

Navicat itself does not store the database password, and can only retrieve the encrypted password. Solution: 1. Check the password manager; 2. Check Navicat's "Remember Password" function; 3. Reset the database password; 4. Contact the database administrator.

Create a database using Navicat Premium: Connect to the database server and enter the connection parameters. Right-click on the server and select Create Database. Enter the name of the new database and the specified character set and collation. Connect to the new database and create the table in the Object Browser. Right-click on the table and select Insert Data to insert the data.

MySQL is an open source relational database management system. 1) Create database and tables: Use the CREATEDATABASE and CREATETABLE commands. 2) Basic operations: INSERT, UPDATE, DELETE and SELECT. 3) Advanced operations: JOIN, subquery and transaction processing. 4) Debugging skills: Check syntax, data type and permissions. 5) Optimization suggestions: Use indexes, avoid SELECT* and use transactions.

MySQL and SQL are essential skills for developers. 1.MySQL is an open source relational database management system, and SQL is the standard language used to manage and operate databases. 2.MySQL supports multiple storage engines through efficient data storage and retrieval functions, and SQL completes complex data operations through simple statements. 3. Examples of usage include basic queries and advanced queries, such as filtering and sorting by condition. 4. Common errors include syntax errors and performance issues, which can be optimized by checking SQL statements and using EXPLAIN commands. 5. Performance optimization techniques include using indexes, avoiding full table scanning, optimizing JOIN operations and improving code readability.

You can create a new MySQL connection in Navicat by following the steps: Open the application and select New Connection (Ctrl N). Select "MySQL" as the connection type. Enter the hostname/IP address, port, username, and password. (Optional) Configure advanced options. Save the connection and enter the connection name.

You can open phpMyAdmin through the following steps: 1. Log in to the website control panel; 2. Find and click the phpMyAdmin icon; 3. Enter MySQL credentials; 4. Click "Login".

Steps to perform SQL in Navicat: Connect to the database. Create a SQL Editor window. Write SQL queries or scripts. Click the Run button to execute a query or script. View the results (if the query is executed).
