Rumah pangkalan data SQL sql优化的几种方法

sql优化的几种方法

Jun 05, 2019 pm 04:04 PM
pengoptimuman sql

sql优化的几种方法

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。

2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:

select id from t where num is null
Salin selepas log masuk

可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:

select id from t where num=0
Salin selepas log masuk

3.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。

4.应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:

select id from t where num=10 or num=20
Salin selepas log masuk

可以这样查询:

select id from t where num=10
union all
select id from t where num=20
Salin selepas log masuk

5.in 和 not in 也要慎用,否则会导致全表扫描,如:

select id from t where num in(1,2,3)
Salin selepas log masuk

对于连续的数值,能用 between 就不要用 in 了:

select id from t where num between 1 and 3
Salin selepas log masuk

6.下面的查询也将导致全表扫描:

select id from t where name like &#39;%abc%&#39;
Salin selepas log masuk

7.应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描。如:

select id from t where num/2=100
Salin selepas log masuk

应改为:

select id from t where num=100*2
Salin selepas log masuk

8.应尽量避免在where子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描。如:

select id from t where substring(name,1,3)=&#39;abc&#39;--name以abc开头的id
Salin selepas log masuk

应改为:

select id from t where name like &#39;abc%&#39;
Salin selepas log masuk

9.不要在 where 子句中的“=”左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引。

10.在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,

否则该索引将不会被使用,并且应尽可能的让字段顺序与索引顺序相一致。

11.不要写一些没有意义的查询,如需要生成一个空表结构:

select col1,col2 into #t from t where 1=0
Salin selepas log masuk

这类代码不会返回任何结果集,但是会消耗系统资源的,应改成这样:

create table #t(...)
Salin selepas log masuk

Atas ialah kandungan terperinci sql优化的几种方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk mengoptimumkan prestasi forum Discuz? Bagaimana untuk mengoptimumkan prestasi forum Discuz? Mar 12, 2024 pm 06:48 PM

Bagaimana untuk mengoptimumkan prestasi forum Discuz? Pengenalan: Discuz ialah sistem forum yang biasa digunakan, tetapi ia mungkin menghadapi kesesakan prestasi semasa penggunaan. Untuk meningkatkan prestasi Forum Discuz, kami boleh mengoptimumkannya dari banyak aspek, termasuk pengoptimuman pangkalan data, tetapan cache, pelarasan kod, dsb. Berikut akan memperkenalkan cara mengoptimumkan prestasi forum Discuz melalui operasi dan contoh kod tertentu. 1. Pengoptimuman pangkalan data: Pengoptimuman indeks: Mencipta indeks untuk medan pertanyaan yang kerap digunakan boleh meningkatkan kelajuan pertanyaan. Sebagai contoh

Bagaimana untuk mengoptimumkan prestasi SQL Server dan MySQL supaya mereka boleh melakukan yang terbaik? Bagaimana untuk mengoptimumkan prestasi SQL Server dan MySQL supaya mereka boleh melakukan yang terbaik? Sep 11, 2023 pm 01:40 PM

Bagaimana untuk mengoptimumkan prestasi SQLServer dan MySQL supaya mereka boleh melakukan yang terbaik? Abstrak: Dalam aplikasi pangkalan data hari ini, SQLServer dan MySQL adalah dua sistem pengurusan pangkalan data hubungan (RDBMS) yang paling biasa dan popular. Memandangkan jumlah data meningkat dan keperluan perniagaan terus berubah, mengoptimumkan prestasi pangkalan data menjadi sangat penting. Artikel ini akan memperkenalkan beberapa kaedah dan teknik biasa untuk mengoptimumkan prestasi SQLServer dan MySQL untuk membantu pengguna memanfaatkan

Penalaan prestasi Linux~ Penalaan prestasi Linux~ Feb 12, 2024 pm 03:30 PM

Sistem pengendalian Linux ialah produk sumber terbuka, dan ia juga merupakan platform amalan dan aplikasi untuk perisian sumber terbuka. Di bawah platform ini, terdapat banyak sokongan perisian sumber terbuka, seperti apache, tomcat, mysql, php, dll. Konsep terbesar perisian sumber terbuka ialah kebebasan dan keterbukaan. Oleh itu, sebagai platform sumber terbuka, matlamat Linux adalah untuk mencapai prestasi aplikasi yang optimum pada kos terendah melalui sokongan perisian sumber terbuka ini. Apabila ia datang kepada isu prestasi, apa yang dicapai terutamanya ialah gabungan terbaik sistem pengendalian dan aplikasi Linux. 1. Gambaran keseluruhan isu prestasi Prestasi sistem merujuk kepada keberkesanan, kestabilan dan kelajuan tindak balas sistem pengendalian dalam menyelesaikan tugas. Pentadbir sistem Linux mungkin sering menghadapi masalah seperti ketidakstabilan sistem dan kelajuan tindak balas yang perlahan, seperti

Perbezaan teras antara sistem pengurusan pangkalan data Sybase dan Oracle Perbezaan teras antara sistem pengurusan pangkalan data Sybase dan Oracle Mar 08, 2024 pm 05:54 PM

Perbezaan teras antara sistem pengurusan pangkalan data Sybase dan Oracle memerlukan contoh kod khusus sistem pengurusan pangkalan data memainkan peranan penting dalam bidang teknologi maklumat moden dan Oracle, kerana dua sistem pengurusan pangkalan data hubungan yang terkenal, menduduki kedudukan penting dalam medan pangkalan data. Walaupun kedua-duanya adalah sistem pengurusan pangkalan data hubungan, terdapat beberapa perbezaan teras dalam aplikasi praktikal. Artikel ini akan membandingkan Sybase dan Oracle dari pelbagai perspektif, termasuk seni bina, sintaks, prestasi, dsb.

Apakah maksudnya dalam sql Apakah maksudnya dalam sql May 01, 2024 pm 11:03 PM

ANY kata kunci dalam SQL digunakan untuk menyemak sama ada subquery mengembalikan sebarang baris yang memenuhi syarat yang diberikan: Sintaks: ANY (subquery) Penggunaan: Digunakan dengan operator perbandingan, jika subquery mengembalikan sebarang baris yang memenuhi syarat, ANY ungkapan Menilai kepada benar Kelebihan: memudahkan pertanyaan, meningkatkan kecekapan dan sesuai untuk memproses sejumlah besar data Had: tidak menyediakan baris khusus yang memenuhi syarat, jika subkueri mengembalikan berbilang baris yang memenuhi syarat, hanya benar dikembalikan

Penalaan prestasi SQL Server dan MySQL: Amalan terbaik dan petua utama. Penalaan prestasi SQL Server dan MySQL: Amalan terbaik dan petua utama. Sep 11, 2023 pm 12:46 PM

Penalaan Prestasi SQLServer dan MySQL: Amalan Terbaik dan Petua Utama Ringkasan: Artikel ini akan memperkenalkan kaedah penalaan prestasi dua sistem pangkalan data hubungan biasa, SQLServer dan MySQL, serta menyediakan beberapa amalan terbaik dan petua utama untuk membantu pembangun dan pentadbir Pangkalan Data meningkatkan prestasi dan kecekapan sistem pangkalan data. Pengenalan: Dalam pembangunan aplikasi moden, sistem pangkalan data adalah bahagian yang sangat diperlukan. Apabila jumlah data meningkat dan permintaan pengguna meningkat, pengoptimuman prestasi pangkalan data menjadi sangat penting. SQ

Pelan pelaksanaan penyata MySql SQL: Bagaimana untuk mengoptimumkan proses pertanyaan MySQL Pelan pelaksanaan penyata MySql SQL: Bagaimana untuk mengoptimumkan proses pertanyaan MySQL Jun 16, 2023 am 09:15 AM

Dengan perkembangan pesat Internet, penyimpanan dan pemprosesan data menjadi semakin penting. Oleh itu, pangkalan data hubungan adalah sebahagian daripada platform perisian moden. Pangkalan data MySQL telah menjadi salah satu pangkalan data hubungan yang paling popular kerana ia mudah digunakan, mudah digunakan dan diurus. Walau bagaimanapun, isu prestasi pangkalan data MySQL sering menjadi isu apabila berurusan dengan jumlah data yang besar. Dalam artikel ini, kami akan menyelidiki pelan pelaksanaan pernyataan SQL MySQL dan memperkenalkan cara menambah baik data MySQL dengan mengoptimumkan proses pertanyaan.

Bagaimana untuk mencapai pengoptimuman peringkat rendah MySQL: petua dan amalan terbaik untuk pengoptimuman lanjutan bagi pernyataan SQL Bagaimana untuk mencapai pengoptimuman peringkat rendah MySQL: petua dan amalan terbaik untuk pengoptimuman lanjutan bagi pernyataan SQL Nov 08, 2023 pm 04:32 PM

MySQL ialah sistem pengurusan pangkalan data hubungan yang digunakan secara meluas yang biasa digunakan untuk pembangunan aplikasi web dan penyimpanan data. Dalam aplikasi praktikal, pengoptimuman asas MySQL adalah amat penting, antaranya pengoptimuman lanjutan pernyataan SQL adalah kunci untuk meningkatkan prestasi pangkalan data. Artikel ini akan memperkenalkan beberapa petua dan amalan terbaik untuk melaksanakan pengoptimuman asas MySQL, serta contoh kod khusus. Tentukan syarat pertanyaan Apabila menulis pernyataan SQL, anda mesti terlebih dahulu mentakrifkan syarat pertanyaan dan elakkan menggunakan pertanyaan kad bebas tanpa had, iaitu, elakkan menggunakan "%" untuk membuka pertanyaan.

See all articles