第三個模塊 MySQL-UUID耕拷、分詞字典汹族、MySQL全文索引

論mysql5.7.13性能優(yōu)化之索引優(yōu)化
mysql優(yōu)化(1)show命令 慢查詢?nèi)罩?explain profiling
mysql優(yōu)化(2)索引優(yōu)化 配置優(yōu)化
源碼 360云盤 (提取碼:8d71)

一萧求、 UUID(全局唯一ID)

https://packagist.org/搜索uuid

軟件包名:

ramsey/uuid

安裝

composer require ramsey/uuid

使用:

<?php
require 'vendor/autoload.php';

use Ramsey\Uuid\Uuid;
use Ramsey\Uuid\Exception\UnsatisfiedDependencyException;

try {

    // Generate a version 1 (time-based) UUID object
    $uuid1 = Uuid::uuid1();
    echo $uuid1->toString() . "\n"; // i.e. e4eaaaf2-d142-11e1-b3e4-080027620cdd

    // Generate a version 3 (name-based and hashed with MD5) UUID object
    $uuid3 = Uuid::uuid3(Uuid::NAMESPACE_DNS, 'php.net');
    echo $uuid3->toString() . "\n"; // i.e. 11a38b9a-b3da-360f-9353-a5a725514269

    // Generate a version 4 (random) UUID object
    $uuid4 = Uuid::uuid4();
    echo $uuid4->toString() . "\n"; // i.e. 25769c6c-d34d-4bfe-ba98-e0ee856f3e7a

    // Generate a version 5 (name-based and hashed with SHA1) UUID object
    $uuid5 = Uuid::uuid5(Uuid::NAMESPACE_DNS, 'php.net');
    echo $uuid5->toString() . "\n"; // i.e. c4a760a8-dbcf-5254-a0d9-6a4474bd1b62

} catch (UnsatisfiedDependencyException $e) {

    // Some dependency was not met. Either the method cannot be called on a
    // 32-bit system, or it can, but it relies on Moontoast\Math to be present.
    echo 'Caught exception: ' . $e->getMessage() . "\n";

}

二、 分詞字典

可以自行百度下載php分詞字典顶瞒!
https://yunpan.cn/ckQ6adR7zRRfY (提取碼:69b8)

三夸政、 MySQL全文索引(解決全文索引查詢關(guān)鍵詞最小長度限制)

說明:

  • MySQL MyISAM的fulltext全文索引默認(rèn)支持英語單詞,由空格分詞搁拙,查詢關(guān)鍵詞最小長度是4個字符秒梳。
  • 利用空格可以對中文進(jìn)行分詞法绵!
SELECT * FROM 表名 WHERE MATCH(全文索引字段) AGAINST(‘查詢單詞’ IN Boolean Mode);
分表:將一個大的數(shù)據(jù)表水平分割成32張表,利用UUID均勻插入32張表中;
原理:UUID生成32位16進(jìn)制字符串,取前兩位與32取余酪碘,得到的值拼接到表名的后面朋譬。
UUID: e564e388-7589-4484-a51a-9522259f751e
前兩位:e5
echo 0xe5 % 32;//5 則表的名稱:表名_5
其中:0x代表處進(jìn)制。

注意:

  1. MySQL中不要使用多表連查(會產(chǎn)生笛卡爾乘積)當(dāng)數(shù)據(jù)量大的時候嚴(yán)重影響性能兴垦。
  2. MySQL中不要使用like查詢徙赢,因為它不會使用到索引!

參考 http://www.bubufx.com/detail-1351689.html

一探越、設(shè)置條件
1.表的存儲引擎是MyISAM狡赐,默認(rèn)存儲引擎InnoDB不支持全文索引
(新版本MYSQL5.6的InnoDB支持全文索引)
2.字段類型:charvarchartext

二钦幔、配置MySQL配置文件
MySQL全文索引查詢關(guān)鍵詞最小長度限制

[mysqld]
innodb_ft_min_token_size=1  /*這個是才是InnoDB引擎的全文索引最小長度設(shè)置*/
ft_min_word_len=1 /*MyISAM引擎的*/

保存后重啟MYSQL枕屉,執(zhí)行SQL語句

SHOW VARIABLES like '%ft%';

查看ft_min_word_len是否設(shè)置成功
注:重新設(shè)置配置后,已經(jīng)設(shè)置的索引需要重新設(shè)置生成索引

三鲤氢、創(chuàng)建表搀擂、插入數(shù)據(jù)

  1. 建表SQL語句:
//創(chuàng)建文章表
CREATE TABLE `article_0` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `uuid` char(64) NOT NULL,
  `content` text NOT NULL,
  `addtime` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
//創(chuàng)建文章關(guān)鍵詞表
CREATE TABLE `article_index` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `uuid` char(64) NOT NULL,
  `keywords` text NOT NULL,
  `addtime` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `uuid_index` (`uuid`),
  FULLTEXT KEY `keywords_index` (`keywords`)
) ENGINE=MyISAM AUTO_INCREMENT=21 DEFAULT CHARSET=utf8;
  1. 插入數(shù)據(jù)
insert into article_0 (uuid, content, addtime) values('e564e388-7589-4484-a51a-9522259f751e', '首次見面,沈從文便請蕭乾到東安市場的小館中吃飯卷玉,沈從文手寫菜名后哨颂,蕭乾欲收藏,對伙計說:這個菜單給我吧相种,我再給您抄一遍威恼。沈從文則說:“要菜單干嗎?以后我會給你寫信寝并,寫很長的信箫措。”', '1473782670');
insert into article_index (uuid, keywords, addtime) values('e564e388-7589-4484-a51a-9522259f751e', '菜單 見面 市場 吃飯 手寫 收藏 這個 以后 我會 寫信', '1473782670')
  1. 全文索引-關(guān)鍵詞查詢
SELECT * FROM article_index WHERE MATCH (keywords) AGAINST ('見面' in Boolean Mode);
+----+--------------------------------------+-----------------------------------------------------------------------+------------+
| id | uuid                                 | keywords                                                              | addtime    |
+----+--------------------------------------+-----------------------------------------------------------------------+------------+
|  2 | 2600d27c-ba84-4f1d-ac97-b2656ed5bcfd | 菜單 見面 市場 吃飯 手寫 收藏 這個 以后 我會 寫信                     | 1473782670 |
|  7 | 5ca114fa-cb08-4293-87a4-c4abbb80b965 | 菜單 見面 市場 吃飯 手寫 收藏 這個 以后 我會 寫信                     | 1473782670 |
| 13 | e564e388-7589-4484-a51a-9522259f751e | 菜單 見面 市場 吃飯 手寫 收藏 這個 以后 我會 寫信                     | 1473782670 |
+----+--------------------------------------+-----------------------------------------------------------------------+------------+
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末食茎,一起剝皮案震驚了整個濱河市蒂破,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌别渔,老刑警劉巖附迷,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異哎媚,居然都是意外死亡喇伯,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門拨与,熙熙樓的掌柜王于貴愁眉苦臉地迎上來稻据,“玉大人,你說我怎么就攤上這事∧砻酰” “怎么了匆赃?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長今缚。 經(jīng)常有香客問我算柳,道長,這世上最難降的妖魔是什么姓言? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任瞬项,我火速辦了婚禮,結(jié)果婚禮上何荚,老公的妹妹穿的比我還像新娘囱淋。我一直安慰自己,他們只是感情好餐塘,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布妥衣。 她就那樣靜靜地躺著,像睡著了一般戒傻。 火紅的嫁衣襯著肌膚如雪称鳞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天稠鼻,我揣著相機(jī)與錄音,去河邊找鬼狂票。 笑死候齿,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的闺属。 我是一名探鬼主播慌盯,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼掂器!你這毒婦竟也來了亚皂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤国瓮,失蹤者是張志新(化名)和其女友劉穎灭必,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體乃摹,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡禁漓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了孵睬。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片播歼。...
    茶點(diǎn)故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖掰读,靈堂內(nèi)的尸體忽然破棺而出秘狞,到底是詐尸還是另有隱情叭莫,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布烁试,位于F島的核電站雇初,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏廓潜。R本人自食惡果不足惜抵皱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望辩蛋。 院中可真熱鬧呻畸,春花似錦、人聲如沸悼院。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽据途。三九已至绞愚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間颖医,已是汗流浹背位衩。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留熔萧,地道東北人糖驴。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像佛致,于是被迫代替她去往敵國和親贮缕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容