


Bagaimanakah Saya Boleh Memilih Baris Rawak dengan Cekap daripada Jadual PostgreSQL Besar?
Memilih baris secara rawak daripada pangkalan data yang besar seperti PostgreSQL boleh menjadi tugas yang intensif prestasi. Artikel ini meneroka dua kaedah biasa untuk mencapai matlamat ini dengan cekap dan membincangkan kelebihan dan kekurangannya.
Kaedah 1: Tapis mengikut nilai rawak
select * from table where random() < 0.01;
Kaedah ini mengisih baris secara rawak dan kemudian menapis berdasarkan ambang. Walau bagaimanapun, ia memerlukan imbasan jadual penuh dan boleh menjadi perlahan untuk set data yang besar.
Kaedah 2: Isih mengikut nilai rawak dan hadkan keputusan
select * from table order by random() limit 1000;
Kaedah ini mengisih baris secara rawak dan memilih n baris atas. Ia berprestasi lebih baik daripada kaedah pertama, tetapi ia mempunyai had: ia mungkin tidak dapat memilih subset rawak apabila terdapat terlalu banyak baris dalam kumpulan baris.
Penyelesaian pengoptimuman untuk set data yang besar
Untuk jadual dengan bilangan baris yang banyak (seperti 500 juta baris dalam contoh anda), pendekatan berikut menyediakan penyelesaian yang dioptimumkan:
WITH params AS ( SELECT 1 AS min_id, -- 最小ID(小于等于当前最小ID) 5100000 AS id_span -- 四舍五入。(max_id - min_id + buffer) ) SELECT * FROM ( SELECT p.min_id + trunc(random() * p.id_span)::integer AS id FROM params p , generate_series(1, 1100) g -- 1000 + buffer GROUP BY 1 -- 去除重复项 ) r JOIN big USING (id) LIMIT 1000; -- 去除多余项
Pertanyaan ini menggunakan indeks pada lajur ID untuk mendapatkan semula yang cekap. Ia menjana satu siri nombor rawak dalam ruang ID, memastikan ID adalah unik dan menggabungkan data dengan jadual utama untuk memilih bilangan baris yang diperlukan.
Pertimbangan lain
Pertanyaan sempadan:
Adalah penting bahawa lajur ID jadual mempunyai sedikit jurang untuk mengelakkan keperluan untuk penimbal besar dalam penjanaan nombor rawak.
Paparan material:
Jika anda perlu berulang kali mengakses data rawak, pertimbangkan untuk mencipta paparan terwujud untuk meningkatkan prestasi.
SISTEM CONTOH JADUAL untuk PostgreSQL 9.5:
Teknik pengoptimuman yang diperkenalkan dalam PostgreSQL 9.5 ini membolehkan pensampelan pantas bagi peratusan baris tertentu.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memilih Baris Rawak dengan Cekap daripada Jadual PostgreSQL Besar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Menguasai kaedah menambah pengguna MySQL adalah penting untuk pentadbir pangkalan data dan pemaju kerana ia memastikan keselamatan dan kawalan akses pangkalan data. 1) Buat pengguna baru menggunakan perintah CreateUser, 2) Berikan kebenaran melalui perintah geran, 3) Gunakan flushprivileges untuk memastikan kebenaran berkuatkuasa, 4) kerap mengaudit dan membersihkan akaun pengguna untuk mengekalkan prestasi dan keselamatan.

ChooseCHARforfixed-lengthdata,VARCHARforvariable-lengthdata,andTEXTforlargetextfields.1)CHARisefficientforconsistent-lengthdatalikecodes.2)VARCHARsuitsvariable-lengthdatalikenames,balancingflexibilityandperformance.3)TEXTisidealforlargetextslikeartic

Amalan terbaik untuk mengendalikan jenis data rentetan dan indeks dalam MySQL termasuk: 1) Memilih jenis rentetan yang sesuai, seperti char untuk panjang tetap, varchar untuk panjang berubah, dan teks untuk teks besar; 2) berhati-hati dalam pengindeksan, elakkan daripada mengindeks, dan buat indeks untuk pertanyaan umum; 3) Gunakan indeks awalan dan indeks teks penuh untuk mengoptimumkan carian rentetan panjang; 4) Secara kerap memantau dan mengoptimumkan indeks untuk memastikan indeks kecil dan cekap. Melalui kaedah ini, kita dapat mengimbangi membaca dan menulis prestasi dan meningkatkan kecekapan pangkalan data.

Toaddauserremotelytomysql, ikuti: 1) connecttomysqlasroot, 2) createeanewuserwithremoteaccess, 3) grantnessaryaryprivileges, dan4)

TostoreStringsefficientlyinmysql, choosetherightdatypebasedonyonoeds: 1) usecharforfixed-lengtstringslikecountrycodes.2) usevarcharfarfarable-lengtstringslikENAMES.3)

Apabila memilih jenis gumpalan dan jenis data MySQL, gumpalan sesuai untuk menyimpan data binari, dan teks sesuai untuk menyimpan data teks. 1) Gumpalan sesuai untuk data binari seperti gambar dan audio, 2) Teks sesuai untuk data teks seperti artikel dan komen. Apabila memilih, sifat data dan pengoptimuman prestasi mesti dipertimbangkan.

Tidak, yoShouldnotusherootuserinmysqlforyourproduct.Instead, createspecificuserswithlimitedprivilegestoenhancesecurityandperformance: 1) createanewuserwithastrongpassword, 2) GrantonLyNessarypermissionStothiser, 3) secara teratur danReviewandupdateerererererword,

Mysqlstringdatatypesshouldbechosenbasedondatacharacteristicsandusecases: 1) usecharforfixed-lengthstringslikecountrycodes.2) usevarcharfarfarable-lengtstringslikeNames.3) Usebinerorvarbinarbinarbinarbinarsstographceys.2)


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

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).
