<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      mysql完成百萬的數據迅速創建索引

      [摘要]測試數據本機一張表users有100百萬條記錄。在創建此表前沒有未相應字段添加索引,所以此時需要為表添加索引。但是因為數據量大的原因,索引添加可能不成功,想了很多辦法,終于挖坑成功。開始準備工作,u...
      測試數據本機一張表users有100百萬條記錄。在創建此表前沒有未相應字段添加索引,所以此時需要為表添加索引。但是因為數據量大的原因,索引添加可能不成功,想了很多辦法,終于挖坑成功。

      開始準備工作,

      user表結構:

      CREATE TABLE `users` (
        `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
        `name` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL,
        `add_time` int(11) DEFAULT NULL,  PRIMARY KEY (`id`)
      ) ENGINE=MyISAM AUTO_INCREMENT=1000001 DEFAULT CHARSET=latin1;


      嘗試在navicat中使用 into outfile導出數據的時候出現錯誤:

      select * from users into outfile 'users.txt'; //users.txt文件在mysql的dat

      如下圖:

      mysql實現百萬的數據快速創建索引

      上網查了一下是mysql設置的權限,可以使用

      show variables like '%secure%';查看 secure-file-priv 當前的值是什么?

      可以看到secure-file-priv參數是用來限制LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE()傳到哪個指定目錄的。 當secure_file_priv的值為null ,表示限制mysqld 不允許導入 導出 當secure_file_priv的值為/tmp/ ,表示限制mysqld 的導入 導出只能發生在/tmp/目錄下 當secure_file_priv的值沒有具體值時,表示不對mysqld 的導入 導出做限制.

      mysql實現百萬的數據快速創建索引

      導出的數據必須是這個值的指定路徑才可以導出,默認有可能是NULL(我這里查看的是null)就代表禁止導出,所以需要設置一下

      由于我使用的是phpstudy,mysql安裝路徑下的my.ini文件,設置一下路徑:

      mysql實現百萬的數據快速創建索引

      注意:路徑名加雙引號" "
      重啟后再次執行錯誤依舊.....

      mysql.cnf中沒有對這個參數進行設定,就說明這個參數默認便是null

      所以再嘗試修改mysql.cnf中的[mysqld]加入secure_file_priv =

      最終如下:

      mysql實現百萬的數據快速創建索引

      再次重啟mysql
      mysql實現百萬的數據快速創建索引

      mysql實現百萬的數據快速創建索引

      可以看到users.txt生成在同級test數據庫目錄。。。
      接著執行:

      truncate  users;

      創建索引:

      create index name using BTREE on users(name);

      索引的方式有:BTREE、RTREE、HASH、FULLTEXT、SPATIAL,這里不再贅述他們的區別,網上有很多關于這塊的介紹啦

      導入文件到相應表users。

      load data infile 'users.txt' into table users;

      mysql實現百萬的數據快速創建索引

      此方式在write 鎖住情況下,或對外服務暫停時使用,線上不可能直接這樣玩了。

      相關推薦:

      MySQL創建索引和刪除索引的方法

      以上就是mysql實現百萬的數據快速創建索引的詳細內容,更多請關注php中文網其它相關文章!


      學習教程快速掌握從入門到精通的SQL知識。




      日韩精品一区二区三区高清