Dengan perkembangan Internet dan peningkatan jumlah data, pengambilan semula pantas telah menjadi satu keperluan untuk penyimpanan dan pengurusan data. Sebagai salah satu pangkalan data hubungan yang paling popular pada masa ini, MySQL mempunyai keupayaan pertanyaan yang kuat dan prestasi yang stabil. Artikel ini akan memperkenalkan cara menggunakan bahasa Go untuk mencapai perolehan semula data dengan pantas.
1. Asas pangkalan data MySQL
Untuk mencipta pangkalan data baharu dalam MySQL, anda boleh menggunakan arahan berikut:
CREATE DATABASE database_name;
Gunakan arahan berikut untuk memasuki pangkalan data yang ditentukan:
USE database_name;
Gunakan arahan berikut untuk mencipta jadual:
CREATE TABLE table_name ( column_name1 data_type1, column_name2 data_type2, ... column_nameN data_typeN );
Sebagai contoh, kita boleh mencipta jadual pengguna:
CREATE TABLE user ( id INT PRIMARY KEY, name VARCHAR(20), age INT );
Untuk memasukkan data, gunakan arahan berikut:
INSERT INTO user (id, name, age) VALUES (1, 'Tom', 28);
Untuk pertanyaan data, gunakan arahan berikut:
SELECT * FROM user WHERE age >= 25;
2. Gunakan Pergi untuk menyambung ke MySQL
Mula-mula anda perlu memasang pemacu pangkalan data MySQL. Anda boleh menggunakan arahan berikut:
go get -u github.com/go-sql-driver/mysql
Gunakan kod berikut untuk mewujudkan sambungan ke pangkalan data MySQL:
import ( "database/sql" _ "github.com/go-sql-driver/mysql" ) func main() { db, err := sql.Open("mysql", "user:password@tcp(ip:port)/database_name") if err != nil { panic(err.Error()) } defer db.Close() }
Anda perlu memasukkan pengguna, kata laluan, Gantikan ip, port dan nama_pangkalan data dengan nilai yang betul.
Gunakan kod berikut untuk menanyakan data:
rows, err := db.Query("SELECT * FROM user WHERE age >= ?", 25) if err != nil { panic(err.Error()) } defer rows.Close() for rows.Next() { var id int var name string var age int err := rows.Scan(&id, &name, &age) if err != nil { panic(err.Error()) } fmt.Println(id, name, age) }
Anda perlu menggantikan pernyataan SELECT dan parameter pertanyaan dengan nilai yang betul.
Gunakan kod berikut untuk memasukkan data:
stmt, err := db.Prepare("INSERT INTO user (id, name, age) VALUES (?, ?, ?)") if err != nil { panic(err.Error()) } defer stmt.Close() _, err = stmt.Exec(2, "Jerry", 30) if err != nil { panic(err.Error()) }
Penyataan INSERT dan parameter sisip perlu diganti dengan nilai yang betul.
3. Gunakan indeks untuk mempercepatkan pertanyaan
Indeks dalam MySQL ialah struktur data yang boleh mempercepatkan operasi pertanyaan pada lajur tertentu dalam jadual. Apabila menggunakan pangkalan data MySQL untuk pertanyaan data dalam bahasa Go, menggunakan indeks boleh meningkatkan kecekapan pertanyaan dengan ketara. Berikut ialah beberapa pengetahuan asas tentang indeks:
Jenis indeks biasa dalam MySQL termasuk: indeks B-Tree, indeks cincang, indeks teks penuh, dsb. . Yang paling biasa digunakan ialah indeks B-Tree.
Gunakan pernyataan berikut untuk mencipta indeks bagi lajur dalam jadual:
CREATE INDEX index_name ON table_name (column_name);
Sebagai contoh, kita boleh mencipta indeks untuk lajur umur dalam jadual pengguna Cipta indeks:
CREATE INDEX age_index ON user (age);
Semasa membuat pertanyaan, anda boleh menggunakan pernyataan berikut untuk memaksa MySQL menggunakan indeks:
SELECT * FROM user USE INDEX (age_index) WHERE age >= 25;
Dalam situasi sebenar, MySQL secara automatik akan memilih indeks yang paling sesuai untuk digunakan. Anda boleh menggunakan arahan berikut untuk melihat pelan pelaksanaan pertanyaan:
EXPLAIN SELECT * FROM user WHERE age >= 25;
4. Ringkasan
Artikel ini memperkenalkan cara menggunakan bahasa Go untuk menyambung ke pangkalan data MySQL dan menggunakan indeks untuk mempercepatkan pertanyaan. Dalam aplikasi praktikal, menggunakan indeks yang sesuai dan mengoptimumkan pernyataan SQL boleh meningkatkan kecekapan pertanyaan dan prestasi pangkalan data dan mencapai perolehan data yang cepat.
Atas ialah kandungan terperinci Gunakan MySQL dalam bahasa Go untuk mencapai perolehan data yang pantas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!