1. 程式人生 > >幾百萬的資料,mysql快速高效建立索引

幾百萬的資料,mysql快速高效建立索引

 有一個問題,一張表有3百萬條記錄,隨著時間的增加,記錄量會更多,此時查詢速度很慢。在建立此表前沒有未相應欄位新增索引,所以此時需要為表新增索引。但是因為資料量大的原因,索引新增不成功,想了很多辦法,終於在短時間內解決了。

總的思想就是,將資料匯出,建立索引,然後將資料導回。

  辦法如下:

  1、進入mysql介面。mysql -uroot -hlocalhost -plovelive gm;

  2、匯出相應表的資料。select * from tab into outfile 'tab.txt'; 此處tab.txt檔案在mysql的data目錄裡

  3、刪除相應表的資料,並置第一條記錄為0。truncate tab;

  4、建立索引。create index IDX_NAME using BTREE on tab (col);

  索引的方式有:BTREE、RTREE、HASH、FULLTEXT、SPATIAL

  5、匯入檔案到相應表。load data infile '/mysql/data/tab.txt' into table tab;


相關推薦

百萬資料mysql快速高效建立索引

 有一個問題,一張表有3百萬條記錄,隨著時間的增加,記錄量會更多,此時查詢速度很慢。在建立此表前沒有未相應欄位新增索引,所以此時需要為表新增索引。但是因為資料量大的原因,索引新增不成功,想了很多辦法,終於在短時間內解決了。 總的思想就是,將資料匯出,建立索引,然後將

日記俠:如何用微信快速高效建立連線?

你好,我是王剛,行走於網路江湖的“日記俠”。每天分享我的思考和經驗,希望身邊的人可以和我一樣天天寫日記,今天是王剛日記第661天。 微信就是一個社交應用,快速高效建立連線是它的核心功能,你用好了嗎? 微信社交現狀 還記得最熟悉的陌生人嗎?現在的朋友圈就是一個

Java一次性查詢十萬 百萬資料解決辦法

Java查詢一次性查詢幾十萬,幾百萬資料解決辦法。 很早的時候寫工具用的一個辦法,當時是用來把百萬資料打包成rar檔案。 所以用了個笨辦法。 希望高手指導一下,有什麼好方法沒有啊。 以下是查詢資料庫。按批次查詢 publicstaticvoid getMonthDataList() {

華為高管又出事了!涉嫌受賄被帶走!拿著百萬年薪為啥還要貪?

21財聞匯綜合自:第一財經日報、每日經濟新聞、新浪微博等從普通職員晉升到企業高管需要多年曆練,然

關於批量插入資料(100萬級別的資料mysql

測試資料庫為mysql!!! 方法一: public static void insert() { // 開時時間 Long begin = new Date().getTime(); // sql字首 String pre

關於批量插入資料之我見(100萬級別的資料mysql

因前段時間去面試,問到如何高效向資料庫插入10萬條記錄,之前沒處理過類似問題,也沒看過相關資料,結果沒答上來,今天就查了些資料,總結出三種方法: 測試資料庫為mysql!!! 方法一: publicstaticvoid insert() {          

軟體軟體設計程式設計系統構架phpCC#資料mysqlsql

本文通過設定Access-Control-Allow-Origin來實現跨域。 例如:客戶端的域名是client.runoob.com,而請求的域名是server.runoob.com。 如果直接使用ajax訪問,會有以下錯誤: XMLHttpRequest cannot load http://se

jdbc批量插入百萬資料怎麼實現?

網上搜到這樣的一篇部落格,我覺得講的不錯,分享給大家:今天在做一個將excel資料匯入資料庫的程式時,由於資料量大,準備採用jdbc的批量插入。於是用了preparedStatement.addBatch();當加入1w條資料時,再執行插入操作,preparedStateme

Solr6.5與mysql集成建立索引

file 數據庫數據 -c req cal str syn web-inf 想是 首先在solrconfig.xml(我的是保存在/usr/local/tomcat/solrhome/mycore/conf/下)的<requestHandler name="/sele

第二百八十八節MySQL數據庫-索引

創建 mysql數據庫 組合 logs pan 找到 根據 存放位置 全表掃描 MySQL數據庫-索引 索引,是數據庫中專門用於幫助用戶快速查詢數據的一種數據結構。類似於字典中的目錄,查找字典內容時可以根據目錄查找到數據的存放位置,然後直接獲取即可。 如果沒有創建索引查

iOS漢字轉拼音根據首字母建立索引UISearchController

我從後臺獲取到資料,想做的效果就是把獲取到的資料文字的首字母提取出來做成索引條顯示,便於使用者選擇,用到的知識就是,將漢字轉換成拼音再提取首字母轉換大小寫,再排序,然後顯示在索引條上 也許可愛的後臺人員給你的資料就是類似這種,意思就是數組裡面一堆字典,我只需要把其

MySQL高效覆蓋索引

mysql中的一種十分高效有用的索引---覆蓋索引。 覆蓋索引用通俗的話講就是在select的時候只用去讀取索引而取得資料,無需進行二次select相關表。這樣的索引的葉子節點上面也包含了他們索引的資料。 select * from table_name; select i

教你快速建立 MySQL百萬資料愉快的學習各種優化技巧

> 我是風箏,公眾號「古時的風箏」,一個兼具深度與廣度的程式設計師鼓勵師,一個本打算寫詩卻寫起了程式碼的田園碼農! 文章會收錄在 [JavaNewBee](https://github.com/huzhicheng/JavaNewBee) 中,更有 Java 後端知識圖譜,從小白到大牛要走的路都在裡面。 如

mysql百萬資料快速建立索引

測試資料本機一張表users有100百萬條記錄。在建立此表前沒有未相應欄位新增索引,所以此時需要為表新增索引。但是因為資料量大的原因,索引新增可能不成功,想了很多辦法,終於挖坑成功。開始準備工作,user表結構:CREATE TABLE `users` ( `id` in

mysql命令列建立插入表資料

create table t_hero( id int unsigned auto_increment primary key, name varchar(10) unique not null, age tinyint unsigned default 0, gender set("男", "女"), st

Atitit Spring事務配置不起作用可能出現的問題: .是否是資料庫引擎設定不對造成的【筆者就遇到了這個問題由於筆者使用的是mysql資料但是在建立表的時候引擎預設(mysql中引擎預設為

Atitit Spring事務配置不起作用可能出現的問題:   .是否是資料庫引擎設定不對造成的【筆者就遇到了這個問題,由於筆者使用的是mysql資料,但是在建立表的時候引擎預設(mysql中引擎預設為MyISAM,是不支援事務操作的),需要修改為InnoDB,就可以支援事務操作了

Docker執行的MySQL如何快速匯入資料

       之前匯入資料都是用的資料庫連線工具自帶的匯入功能,有時候匯入資料需要兩個小時,簡直沒辦法忍受。後來有了一個更快的方式匯入資料,把他記錄下來,希望大家不再忍受匯入資料的煎熬。。。。        1、備份資料庫表結構,暫時還沒有遇到特別有效的方法,我都是用sho

Mysql模糊查詢like效率以及更高效的寫法 在使用msyql進行模糊查詢的時候很自然的會用到like語句通常情況下在資料量小的時候不容易看出查詢的效率但在資料量達到百萬千萬級的時

在使用msyql進行模糊查詢的時候,很自然的會用到like語句,通常情況下,在資料量小的時候,不容易看出查詢的效率,但在資料量達到百萬級,千萬級的時候,查詢的效率就很容易顯現出來。這個時候查詢的效率就顯得很重要! 一般情況下like模糊查詢的寫法為(field已建立索引): SELECT `column

mysql函式的建立以及hibernate呼叫mysql自定義函式以及資料對比功能模仿中關村線上

系統業務有這樣一個需求,每次版本進行變更時間,則需要建立新的記錄,而不是在原來的基礎上更替舊版本。 基於這樣一個小小的需求,所有在資料庫的設計時間,進行了表的自連線,當然這個只是假象的自連線,沒有進行表自身的外來鍵的對映;當有了很多的資料之後,需要加這個外來鍵已經提示無法進

今天遇到一個問題mysql取分組前資料

親測無誤 小提示: 建立臨時表的方式需要資料庫寫許可權,只有讀許可權的話還是用老實用巢狀sql好了 DROP TEMPORARY TABLE IF EXISTS tableWithRowNum; CREATE TEMPORARY TABLE t