Rumah pangkalan data tutorial mysql PostgresQL建立索引如何避免写数据锁定_MySQL

PostgresQL建立索引如何避免写数据锁定_MySQL

Jun 01, 2016 pm 01:38 PM
bagaimana

bitsCN.com

问题源自一个帅哥在建索引发生表锁的问题。先介绍一下Postgresql的建索引语法: 
Version:9.1 


CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ name ] ON table [ USING method ]    ( { column | ( expression ) } [ COLLATE collation ] [ opclass ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] [, ...] )    [ WITH ( storage_parameter = value [, ... ] ) ]    [ TABLESPACE tablespace ]    [ WHERE predicate ]
Salin selepas log masuk

这里不解释语法的诸多参数使用(排序,使用方法,填充因子等),主要说一下concurrently的使用场景。 
  
正常情况下Postgresql建立普通btree索引时会阻塞DML(insert,update,delete)操作,直到索引完成,期间读操作不受阻塞。当只有一个用户操作这当然没问题,但是在生产环境,并发比较高的情况下,特别是大表建索引就不能这么操作了,不然用户要跳起来骂娘了,点个按钮一天还没反应过来。 

--使用 
Postgresql提供了一个参数,可以在线建立索引的时候避免因写数据而锁表,这个参数叫concurrently。使用很简单,就是用create index concurrently来代替create index即可。 

--副作用 
当然了,使用这个参数是有副作用的,不使用这个参数建索引时DB只扫描一次表,使用这个参数时,会引发DB扫两次表,同时等待所有潜在会读到该索引的事务结束,这么一来,系统的CPU和IO,内存等会受一点影响,所以综合考虑,仍然让用户自行选择,而不是默认。 

--失败 
在使用concurrently参数建索引时,有可能会遇到失败的情况,比如建唯一索引索引发现数据有重复,又或者用户发现建索引时建错字段的,取消建索引操作了。此时该表上会存在一个索引,这是因为带这个参数的建索引命令一经发出,就首先会在系统的日志表里先插一个索引记录进去,又因为这个索引最终建失败了,所以会被标记一个INVALID的状态,如下:

postgres=# /d t_kenyon       Table "public.t_kenyon" Column |  Type   | Modifiers --------+---------+----------- col    | integer | Indexes:    "idx" btree (col) INVALID
Salin selepas log masuk

--重建 
遇到上述失效的索引重建时两个办法,一个是drop index index_name,然后再执行create index concurrently。还有一个是执行reindex index_name命令,但是后者不支持concurrent参数。 

--总结 
在生产上执行创建索引命令时最好带上此参数,因为多消耗一点系统资源和时间来换取用户的不间断访问更新是相对值得的。 如果是索引重建,可以再在原基础上建立一个不同名的相同索引,然后取消老的索引。 



参考: http://www.postgresql.org/docs/9.1/static/sql-createindex.html

bitsCN.com
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)

Adakah terdapat masa depan untuk pekerjaan dalam farmasi klinikal di Universiti Perubatan Harbin? (Apakah prospek pekerjaan untuk farmasi klinikal di Universiti Perubatan Harbin?) Adakah terdapat masa depan untuk pekerjaan dalam farmasi klinikal di Universiti Perubatan Harbin? (Apakah prospek pekerjaan untuk farmasi klinikal di Universiti Perubatan Harbin?) Jan 02, 2024 pm 08:54 PM

Apakah prospek pekerjaan farmasi klinikal di Universiti Perubatan Harbin Walaupun situasi pekerjaan negara tidak optimistik, graduan farmaseutikal masih mempunyai prospek pekerjaan yang baik. Secara keseluruhannya, bekalan graduan farmaseutikal adalah kurang daripada permintaan Syarikat farmaseutikal dan kilang farmaseutikal adalah saluran utama untuk menyerap graduan tersebut. Menurut laporan, dalam beberapa tahun kebelakangan ini, nisbah bekalan-permintaan untuk pelajar siswazah dalam jurusan seperti persediaan farmaseutikal dan kimia perubatan semula jadi telah mencapai 1:10. Arah pekerjaan jurusan farmasi klinikal: Selepas tamat pengajian, pelajar jurusan perubatan klinikal boleh melibatkan diri dalam rawatan perubatan, pencegahan, penyelidikan perubatan, dsb. dalam unit perubatan dan kesihatan, penyelidikan perubatan dan jabatan lain. Jawatan pekerjaan: Wakil perubatan, wakil jualan farmaseutikal, wakil jualan, pengurus jualan, pengurus jualan wilayah, pengurus pelaburan, pengurus produk, pakar produk, jururawat

Bagaimana untuk membersihkan folder temp Bagaimana untuk membersihkan folder temp Feb 22, 2024 am 09:15 AM

Cara membersihkan folder temp Semasa kami menggunakan komputer, fail sementara (fail temp) akan terkumpul secara beransur-ansur. Fail sementara ini dijana apabila kami menggunakan komputer, seperti fail cache semasa menyemak imbas web, fail sementara semasa pemasangan perisian, dsb. Kegagalan untuk membersihkan folder temp untuk masa yang lama mungkin menduduki sejumlah besar ruang cakera dan menjejaskan kelajuan komputer. Oleh itu, membersihkan folder temp dengan kerap adalah langkah yang perlu untuk mengekalkan prestasi komputer. Di bawah, kami akan memperkenalkan beberapa cara mudah untuk membersihkan folder temp. Kaedah 1: Bersihkan t secara manual

Bagaimana untuk memuat turun imej win10 dengan cepat Bagaimana untuk memuat turun imej win10 dengan cepat Jan 07, 2024 am 11:33 AM

Baru-baru ini, beberapa rakan melaporkan cara memuat turun fail imej win10 Kerana terdapat banyak fail imej di pasaran, apakah yang perlu saya lakukan jika saya ingin mencari fail biasa untuk dimuat turun? Hari ini, editor telah membawakan anda pautan untuk memuat turun imej dan langkah penyelesaian terperinci Mari kita lihat bersama-sama. muat turun pantas imej win10 dan pautan muat turun tutorial pemasangan >>> Sistem Home Ghostwin101909 imej versi 64-bit v2019.11<<<>>>Imej Win10 64-bit v2019.07<<<>>>Imej Win10 32-bit v2019. 07<< <1. Cari melalui Internet

Bagaimana untuk menetapkan semula sistem Win10 Bagaimana untuk menetapkan semula sistem Win10 Jun 29, 2023 pm 03:14 PM

Bagaimana untuk menetapkan semula sistem Win10? Pada masa kini, ramai rakan suka menggunakan komputer dengan sistem Win10 Namun, mereka pasti akan menghadapi beberapa masalah yang tidak dapat diselesaikan pada masa ini, anda boleh cuba untuk menetapkan semula sistem. Mari ikuti editor untuk menonton tutorial menetapkan semula sistem Win10 Pengguna yang memerlukan tidak boleh ketinggalan. Tutorial menetapkan semula sistem Win10 1. Klik Windows dan pilih Tetapan. 2. Klik Kemas Kini dan Keselamatan. 3. Pilih Pulihkan. 4. Klik Mula di sebelah kanan untuk menetapkan semula komputer ini. Di atas adalah keseluruhan kandungan [Cara menetapkan semula sistem Win10 - Tutorial menetapkan semula sistem Win10].

Selesaikan masalah pengesanan persekitaran apabila memasang semula sistem Selesaikan masalah pengesanan persekitaran apabila memasang semula sistem Jan 08, 2024 pm 03:33 PM

Bagaimana untuk menyelesaikan masalah bahawa ujian persekitaran gagal apabila memasang semula sistem dan perlu ditulis semula Sebabnya ialah: telefon mudah alih anda boleh memasang perisian anti-virus seperti Pengurus Mudah Alih untuk anti-virus fail disimpan di dalam telefon bimbit, menyebabkan memori berjalan telefon bimbit itu diduduki. Kosongkan cache telefon untuk menyelesaikan masalah ini 3. Memori telefon terlalu banyak diduduki oleh perisian dan fail yang disimpan Tidak ada masalah untuk memadamkan fail dan perisian yang tidak diperlukan dengan kerap Selagi konfigurasi perkakasan anda memenuhi keperluan pemasangan, anda boleh gunakan yang baharu secara langsung. Pasang semula sistem daripada cakera sistem! Anda boleh menggunakan pemacu kilat USB atau cakera keras untuk memasang, yang sangat pantas. Tetapi kuncinya ialah menggunakan cakera sistem dengan keserasian yang baik (menyokong pemasangan dalam mod IDE, ACHI, dan RAID), dan ia boleh diaktifkan secara automatik dan kekal, yang telah disahkan. jadi

Bagaimana untuk menyemak konfigurasi komputer win11 Bagaimana untuk menyemak konfigurasi komputer win11 Jun 29, 2023 pm 12:15 PM

Bagaimana untuk menyemak konfigurasi komputer win11? Sistem win11 adalah versi sistem pengendalian komputer yang sangat praktikal Versi ini menyediakan pengguna dengan fungsi yang kaya, membolehkan pengguna untuk mempunyai pengalaman pengendalian komputer yang lebih baik dalam sistem win11? Ramai rakan tidak tahu bagaimana untuk beroperasi secara terperinci Editor telah menyusun tutorial tentang cara melihat konfigurasi komputer win11 di bawah Jika anda berminat, ikuti editor dan teruskan membaca. Tutorial paparan konfigurasi komputer Win11 1. Klik ikon tetingkap pada bar tugas di bawah atau tekan "kekunci tetingkap" pada papan kekunci untuk membuka menu mula. 2. Cari "Tetapan" atau "sett" dalam menu mula.

Bagaimana untuk menambah nilai elemen HTML? Bagaimana untuk menambah nilai elemen HTML? Sep 16, 2023 am 08:41 AM

Artikel ini akan mengajar anda cara menambah nilai elemen dalam HTML. Kami mempunyai pemahaman asas tentang atribut nilai dalam HTML dan situasi di mana ia digunakan. Mari kita nantikan pemahaman yang lebih baik tentang atribut HTMLvalue. Dalam HTML, atribut nilai digunakan untuk menerangkan nilai elemen yang digunakan dengannya. Ia mempunyai makna yang berbeza untuk pelbagai komponen HTML. Penggunaan - Ia boleh digunakan dengan,,,,, dan, elemen. -Apabila atribut nilai hadir, ia menunjukkan nilai lalai elemen input. Ia mempunyai makna yang berbeza untuk pelbagai jenis input: apabila butang muncul dalam "butang," "set semula," dan &qu

bagaimana untuk menetapkan semula kata laluan dalam mysql bagaimana untuk menetapkan semula kata laluan dalam mysql Feb 18, 2024 pm 12:41 PM

MySQL ialah sistem pengurusan pangkalan data hubungan sumber terbuka yang digunakan secara meluas dalam pelbagai jenis pembangunan aplikasi. Apabila menggunakan pangkalan data MySQL, anda sering perlu menukar kata laluan untuk meningkatkan keselamatan pangkalan data. Artikel ini akan memperkenalkan cara menukar kata laluan MySQL melalui contoh kod tertentu. Dalam MySQL, anda boleh menukar kata laluan dengan mengikuti langkah berikut: Log masuk ke pelayan pangkalan data MySQL: Buka prompt arahan atau tetingkap terminal dan laksanakan arahan berikut: mysql-uroo

See all articles