Ringkaskan operasi paling asas pengoptimuman MySQL
Idea pengoptimuman
Langkah pengoptimuman MySQL terperinci adalah seperti berikut:
- Periksa struktur jadual data dan perbaiki reka bentuk yang tidak sempurna
- Jalankan perniagaan utama dan kumpulkan SQL pertanyaan pangkalan data yang biasa digunakan
- Analisis SQL pertanyaan, bahagikannya dengan sewajarnya, tambah indeks, dsb. untuk mengoptimumkan pertanyaan
- Semasa mengoptimumkan SQL, mengoptimumkan logik kod
- Tambah cache setempat dan cache redis
Jangan gunakan nilai NULL jika boleh
Kerana semasa membuat jadual, jika anda tidak menetapkan nilai lalai untuk nilai yang dicipta, MySQL Tetapan lalai ialah NULL
. Jadi mengapa tidak baik untuk menggunakan NULL
?
-
NULL
menjadikan penyelenggaraan indeks lebih rumit adalah amat disyorkan untuk menetapkan pertanyaan bersyarat negatif sepertiNOT NULL
-
NOT IN
dan!=
pada lajur indeks apabila. terdapatNULL
Dalam kes nilai, hasilnya sentiasa kosong dan pertanyaan adalah terdedah kepada ralat Lajur -
NULL
memerlukan bait tambahan sebagai bendera untuk menentukan sama ada ia adalah <.>.NULL
Apabila menggunakan - dan Nilai lain dalam lajur mungkin bukan jenis yang sama, menyebabkan masalah. (Berprestasi berbeza dalam bahasa yang berbeza)
NULL
MySQL mengalami kesukaran mengoptimumkan pertanyaan untuk lajur yang boleh NULL
Tambah indeks
Untuk medan yang kerap ditanya, sila tambah indeks Kelajuan pertanyaan dengan dan tanpa indeks berbeza sebanyak sepuluh kali atau lebih.- Secara umumnya, setiap jadual perlu mempunyai kunci utama
- medan
id
Medan yang biasa digunakan untuk pertanyaan hendaklah diindeks - taip Medan, apabila membina indeks, sebaiknya tentukan panjang
varchar
Apabila pertanyaan mempunyai berbilang syarat, syarat dengan indeks lebih disukai - Carian kabur seperti
- syarat untuk indeks medan adalah Tidak sah, indeks kata kunci lain perlu diwujudkan untuk menyelesaikannya
LIKE
- Sila cuba untuk tidak mengekang hubungan antara jadual dan jadual di peringkat pangkalan data Kebergantungan antara jadual ini harus diselesaikan pada peringkat kod
Optimumkan struktur medan jadual
Jangan gunakan jenis rentetan untuk data dalam pangkalan data yang boleh diwakili oleh integer sama ada hendak menggunakan atau varchar
bergantung pada Nilai yang mungkin untuk medan. char
- Untuk lajur dengan kemungkinan nilai yang sangat terhad, gunakan
- dan bukannya
tinyint
,VARCHAR
- Contohnya, untuk merakam platform peranti mudah alih, hanya terdapat dua nilai: android , ios, kemudian Anda boleh menggunakan 0 untuk mewakili android dan 1 untuk mewakili ios Jenis lajur ini mesti diulas
- Mengapa tidak menggunakan
- ?
ENUM
sukar untuk dikembangkan Contohnya, platform mudah alih kemudiannya menambahkanENUM
, yang akan mengelirukan, tetapi menambah 2 kepadaipad
sudah memadai dantinyint
sangat pelik untuk dikendalikan dalam kod. , kerana ia dianggap sebagai pembedahan plastik Atau rentetan, setiap bahasa adalah berbeza.ENUM
Dengan cara ini, makna setiap nilai mesti ditulis dalam komen atau kod pangkalan data
Untuk rentetan panjang tetap tersebut, anda boleh menggunakan - , seperti Poskod, sentiasa 5 digit
char
Untuk rentetan yang tidak diketahui panjangnya, gunakan varchar
Jangan salah guna - , seperti jadual
bigint
medan yang merekodkan nombor daripada artikel, gunakanid
Itu sahaja, had atas 2.1 bilion artikel sudah memadaiint
Pecahkan paradigma pangkalan data dengan sewajarnya dan tambah medan berlebihan untuk mengelakkan sambungan jadual semasa pertanyaan
Ia lebih pantas daripada int
, kerana perbandingan integer boleh dicapai dengan memanggil terus operator pendasar, manakala perbandingan rentetan perlu dibandingkan dengan aksara demi aksara. varchar
Pisah jadual besar
Bagi jadual yang volum datanya mungkin melebihi 5 juta dalam masa terdekat atau berkembang pesat, pastikan anda melakukan pemisahan jadual menegak atau mendatar terlebih dahulu data Selepas volum melebihi satu juta, kelajuan pertanyaan akan menurun dengan ketara.
Cuba untuk memuktamadkan pelan untuk sub-pangkalan data dan sub-jadual pada peringkat awal reka bentuk pangkalan data, jika tidak, ia akan meningkatkan kerumitan kod dengan ketara dan sukar untuk diubah kemudian.
Pembahagian jadual menegak adalah berdasarkan pembolehubah luaran seperti tarikh, dan pembahagian jadual mendatar adalah berdasarkan perhubungan medan tertentu dalam jadual, menggunakan pemetaan cincang untuk membahagikan jadual kepada bahagian yang sama.
Prasyarat untuk sub-pangkalan data dan sub-pangkalan data jadual ialah sebelum melaksanakan pernyataan pertanyaan, anda sudah mengetahui sub-pangkalan data dan sub-jadual yang mana data yang hendak disoal mungkin termasuk.
Mengoptimumkan pernyataan pertanyaan
Ini adalah pemula kepada banyak kesesakan pangkalan data sistem.
- Sila cuba gunakan pertanyaan mudah dan elakkan menggunakan pautan jadual
- Sila cuba elakkan imbasan jadual penuh Pernyataan yang akan menyebabkan imbasan jadual penuh termasuk tetapi tidak terhad kepada:
- Keadaan klausa di mana sentiasa benar atau kosong
- Gunakan
LIKE
- Gunakan operator ketaksamaan (<>, !=)
- Pertanyaan mengandungi
is null
Apabila menggunakan lajur - pada lajur bukan indeks
or
- apabila membuat pertanyaan dengan berbilang syarat, sila letakkan syarat pertanyaan mudah atau pertanyaan lajur indeks di hadapan
- Sila cuba nyatakan lajur yang perlu ditanya, jangan malas menggunakan pilih *
- Jika anda tidak nyatakan, di satu pihak, data berlebihan akan dikembalikan, menduduki lebar jalur , dsb.
- Sebaliknya, MySQL melaksanakan pertanyaan Apabila tiada medan, ia akan menanyai medan dalam struktur jadual dahulu
- Kata kunci pertanyaan huruf besar ialah lebih pantas sedikit daripada huruf kecil
- Menggunakan subkueri akan membuat jadual sementara akan menjadi lebih perlahan daripada JOIN dan UNION
- Cuba untuk tidak menggunakan fungsi pangkalan data apabila membuat pertanyaan pada medan indeks, kerana ia menyusahkan. untuk cache hasil pertanyaan
- Apabila anda hanya memerlukan satu baris data, sila gunakan LIMIT 1. Jika terdapat terlalu banyak data, sila tetapkan LIMIT dengan sewajarnya Untuk pertanyaan paging
- jangan sekali-kali ORDER BY RAND(. ), prestasinya sangat rendah
Tambah cache
Menggunakan cache seperti redis dan cache fail setempat boleh mengurangkan bilangan pertanyaan pangkalan data. Apabila bercakap tentang caching, anda mesti menganalisis ciri data sistem anda sendiri dan membuat pilihan yang sesuai.
- Untuk beberapa data yang biasa digunakan, seperti maklumat konfigurasi, dsb., ia boleh diletakkan dalam cache
- Struktur jadual pangkalan data boleh dicache secara setempat
- Data cache mesti Beri perhatian kepada kemas kini tepat pada masanya dan tetapkan tempoh sah
- Meningkatkan cache pasti akan meningkatkan kerumitan sistem Pastikan anda memberi perhatian kepada pertukaran
Semak struktur jadual data
Pembelajaran yang disyorkan: "tutorial video mysql"
Atas ialah kandungan terperinci Ringkaskan operasi paling asas pengoptimuman MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas





Anda boleh membuka phpmyadmin melalui langkah -langkah berikut: 1. Log masuk ke panel kawalan laman web; 2. Cari dan klik ikon phpmyadmin; 3. Masukkan kelayakan MySQL; 4. Klik "Login".

MySQL adalah sistem pengurusan pangkalan data relasi sumber terbuka, terutamanya digunakan untuk menyimpan dan mengambil data dengan cepat dan boleh dipercayai. Prinsip kerjanya termasuk permintaan pelanggan, resolusi pertanyaan, pelaksanaan pertanyaan dan hasil pulangan. Contoh penggunaan termasuk membuat jadual, memasukkan dan menanyakan data, dan ciri -ciri canggih seperti Operasi Join. Kesalahan umum melibatkan sintaks SQL, jenis data, dan keizinan, dan cadangan pengoptimuman termasuk penggunaan indeks, pertanyaan yang dioptimumkan, dan pembahagian jadual.

Kedudukan MySQL dalam pangkalan data dan pengaturcaraan sangat penting. Ia adalah sistem pengurusan pangkalan data sumber terbuka yang digunakan secara meluas dalam pelbagai senario aplikasi. 1) MySQL menyediakan fungsi penyimpanan data, organisasi dan pengambilan data yang cekap, sistem sokongan web, mudah alih dan perusahaan. 2) Ia menggunakan seni bina pelanggan-pelayan, menyokong pelbagai enjin penyimpanan dan pengoptimuman indeks. 3) Penggunaan asas termasuk membuat jadual dan memasukkan data, dan penggunaan lanjutan melibatkan pelbagai meja dan pertanyaan kompleks. 4) Soalan -soalan yang sering ditanya seperti kesilapan sintaks SQL dan isu -isu prestasi boleh disahpepijat melalui arahan jelas dan log pertanyaan perlahan. 5) Kaedah pengoptimuman prestasi termasuk penggunaan indeks rasional, pertanyaan yang dioptimumkan dan penggunaan cache. Amalan terbaik termasuk menggunakan urus niaga dan preparedStatemen

MySQL dipilih untuk prestasi, kebolehpercayaan, kemudahan penggunaan, dan sokongan komuniti. 1.MYSQL Menyediakan fungsi penyimpanan dan pengambilan data yang cekap, menyokong pelbagai jenis data dan operasi pertanyaan lanjutan. 2. Mengamalkan seni bina pelanggan-pelayan dan enjin penyimpanan berganda untuk menyokong urus niaga dan pengoptimuman pertanyaan. 3. Mudah digunakan, menyokong pelbagai sistem operasi dan bahasa pengaturcaraan. 4. Mempunyai sokongan komuniti yang kuat dan menyediakan sumber dan penyelesaian yang kaya.

Apache menyambung ke pangkalan data memerlukan langkah -langkah berikut: Pasang pemacu pangkalan data. Konfigurasikan fail web.xml untuk membuat kolam sambungan. Buat sumber data JDBC dan tentukan tetapan sambungan. Gunakan API JDBC untuk mengakses pangkalan data dari kod Java, termasuk mendapatkan sambungan, membuat kenyataan, parameter mengikat, melaksanakan pertanyaan atau kemas kini, dan hasil pemprosesan.

Proses memulakan MySQL di Docker terdiri daripada langkah -langkah berikut: Tarik imej MySQL untuk membuat dan memulakan bekas, tetapkan kata laluan pengguna root, dan memetakan sambungan pengesahan port Buat pangkalan data dan pengguna memberikan semua kebenaran ke pangkalan data

Memasang MySQL pada CentOS melibatkan langkah -langkah berikut: Menambah sumber MySQL YUM yang sesuai. Jalankan YUM Pasang Perintah MySQL-Server untuk memasang pelayan MySQL. Gunakan perintah mysql_secure_installation untuk membuat tetapan keselamatan, seperti menetapkan kata laluan pengguna root. Sesuaikan fail konfigurasi MySQL seperti yang diperlukan. Tune parameter MySQL dan mengoptimumkan pangkalan data untuk prestasi.

Kunci untuk memasang MySQL dengan elegan adalah untuk menambah repositori MySQL rasmi. Langkah -langkah khusus adalah seperti berikut: Muat turun kekunci GPG rasmi MySQL untuk mencegah serangan pancingan data. Tambah fail repositori MySQL: rpm -uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm kemas kini yum repository cache: yum update mysql: yum pemasangan mysql-server mysql Server.
