mysql查询优化
mysql查询,滤除某一字段packageId(不是主键) = num的结果,是直接使用not in 好还是查询完毕遍历结果集的时候滤除好。查询完后无论怎样都需要遍历结果集。
回复内容:
mysql查询,滤除某一字段packageId(不是主键) = num的结果,是直接使用not in 好还是查询完毕遍历结果集的时候滤除好。查询完后无论怎样都需要遍历结果集。
题主在评论中补充了问题
就是考虑到索引,所以才会考虑这类查询条件会不走索引,全表查询速率会很慢。不过这个任务的数据量还是很大的。这个是给网站的一些套餐用户发送短信的提醒的功能。不等于7是因为这个套餐是免费送的,不在考虑的范围内。所以又必须去除。
对于这种大数据量的全表遍历, 首先这种全表取的方式就是不可取的, 你可以考虑通过主键id分段的形式来进行查询, 比如说, 你第一次查询 id > 0 的200条记录, 然后记录下最大id, 然后再查询 > 当前最大id的200条记录, 以此类推
在配合这种id分段的场景下, 你可以放心的把你的packageId放入查询条件, 因为肯定是走到主键id上去的, 所以mysql过滤的数据最多也就200条, 所以问题不大 (200只是举例, 你可以自己根据实际情况和服务压力进行控制)
额外还带来一个好处是你也可以实时观察当前任务的进行情况(发送了200个用户了你可以打个日志, 如果中断你也可以知道从哪里开始)
==== 以下是原答案 ===
你这个查询是没有分页的, 这里也就假定你的数据量其实非常小. 然后因为没有分页也必然会有全表扫描, 直接在sql查询时做掉好了, 没啥太大差别
另外, 只是单纯的不等于一个值, 用 !=
更加直观
如果你的查询是数据量有一点规模的, 或者其实是有分页的(只是你这里的演示代码还没写出来), 那么你应该要考虑是否有其它的带索引的查询条件来辅助你查询到你的数据, 如果没有, 那你需要考虑对于这个packageId也要考虑一下是否要加索引 (如果packageId的分布在这个表中足够分散)
select * from userPackage where packageId<>7
直接使用
第一种更快。
mysql查询速度要远快于遍历的速度的。遍历的时候循环次数越少越好。
肯定是第一种快啊,千万别把所有的数据都取出来。。。mysql受不了

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

AI Hentai Generator
Menjana ai hentai secara percuma.

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

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Salah satu perubahan utama yang diperkenalkan dalam MySQL 8.4 (keluaran LTS terkini pada 2024) ialah pemalam "Kata Laluan Asli MySQL" tidak lagi didayakan secara lalai. Selanjutnya, MySQL 9.0 mengalih keluar pemalam ini sepenuhnya. Perubahan ini mempengaruhi PHP dan apl lain

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

CMS bermaksud Sistem Pengurusan Kandungan. Ia adalah aplikasi perisian atau platform yang membolehkan pengguna mencipta, mengurus dan mengubah suai kandungan digital tanpa memerlukan pengetahuan teknikal lanjutan. CMS membolehkan pengguna membuat dan menyusun kandungan seperti teks, imej, video dan dokumen dengan mudah serta menerbitkannya di tapak web atau platform digital lain.

Array adalah struktur data linear yang digunakan untuk memproses data dalam pengaturcaraan. Kadang -kadang apabila kita sedang memproses tatasusunan kita perlu menambah unsur -unsur baru ke array yang sedia ada. Dalam artikel ini, kami akan membincangkan beberapa cara untuk menambah unsur -unsur ke akhir array dalam PHP, dengan contoh kod, output, dan analisis kerumitan masa dan ruang untuk setiap kaedah. Berikut adalah cara yang berbeza untuk menambah elemen ke array: Gunakan kurungan persegi [] Dalam PHP, cara untuk menambah unsur -unsur ke akhir array adalah menggunakan kurungan persegi []. Sintaks ini hanya berfungsi dalam kes -kes di mana kita mahu menambah hanya satu elemen. Berikut adalah sintaks: $ array [] = nilai; Contoh
