我有一个包含3列的postgres表,这些列有400万行并且正在增长。当我创建表时,我打算在其中一列上创建一个btree索引,但我忘了这样做。我现在可以使用CREATE INDEX命令创建索引,但我认为这将锁定数据库。由于我每秒都有数据,我想避免这种情况。我注意到有一个名为CONCURRENTLY的选项。那是我应该用的吗?它有任何其他我应该注意的效果吗?
谢谢!
答案 0 :(得分:1)
是的,您可以使用<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:background="@drawable/blue3"
tools:context=".MainActivity">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="My Tasks"
android:id="@+id/mytasks_btn"
android:onClick="mytask"
style="@style/btnStyleBeige"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Add Task"
android:id="@+id/addtask_btn"
android:layout_marginTop="65dp"
style="@style/btnStyleBeige"
android:onClick="addtask"
android:layout_below="@+id/mytasks_btn"
android:layout_centerHorizontal="true" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Show Current Location"
android:id="@+id/shw_loc_btn"
style="@style/btnStyleBeige"
android:onClick="shwlocn"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_alignParentEnd="true" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Search Nearby"
android:id="@+id/button4"
android:onClick="searchnear"
style="@style/btnStyleBeige"
android:layout_below="@+id/shw_loc_btn"
android:layout_alignParentStart="true"
android:layout_marginTop="67dp" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/btnStyleBeige"
android:text="Location Distance"
android:id="@+id/button7"
android:onClick="locdis"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true" />
然而 caveats apply:你必须看看自己,是否成功,并可能重新尝试。
答案 1 :(得分:1)
是CONCURRENTLY
将允许您的表在索引构建时继续使用。性能影响难以预测,并且会根据表中的负载和索引的大小而有所不同。
每当我们必须为永远在线的生产数据库添加索引时,我们选择与客户安排停机时间,而不是冒着使用在线索引功能的风险,因为它不太可预测,并且可能因不同的原因导致中断