數據庫優化之中文分詞:

1.中文分詞的原因(重點)
普通的模糊搜索,檢索數據的時候,用不到索引,全文檢索速率很慢
例如:SELECT * FROM goods where title like "%復古%";
算了 算了 算了算了算了算了算了。。。。。。。
2.中文分詞的原理
將大段的中文拆分成多個小的單詞
將單詞插入到一張具有索引的表中. (索引添加在單詞的列上)
檢索時, 首先通過關鍵字檢索單詞表, 然後再通過結果中的id列表, 獲取具體的數據


    select * from goods_words where word = '復古';
    select * from goods where id in (5,13,4)
3.scws例子
  <?php
//test.php
//
// Usage on command-line: php test.php <file|textstring>
// Usage on web: 
header('content-type:text/html;charset=utf-8');

//聲明字符串
$text = <<<EOF
孔子主張“爲政以德”,用道德和禮教來治理國家是最高尚的治國之道。這種治國方略也叫“德治”或“禮治”。德治就是主張以道德去感化教育人。儒家認爲,無論人性善惡,都可以用道德去感化教育人。而所謂“禮治”,即遵守嚴格的等級制度,君臣、父子、貴賤、尊卑都有嚴格的區別。
EOF;

// 引入類文件
require 'pscws4.class.php';
// 實例化
$cws = new PSCWS4();
//設置字符集
$cws->set_charset('utf8');
//設置詞典
$cws->set_dict('etc/dict.utf8.xdb');
//設置utf8規則
$cws->set_rule('etc/rules.utf8.ini');
//忽略標點符號
$cws->set_ignore(true);
//傳遞字符串
$cws->send_text($text);
//獲取權重最高的前十個詞
$ret = $cws->get_tops(10);
//獲取全部的分詞結果
$ret=$cws->get_result();
//打印
var_dump($ret);
//關閉
$cws->close();
?>
4.scws分詞工具  分詞詞典 工具 
5.分詞執行
6.權限管理(重點)
  在root下進行添加用戶操作和給其它用戶加權限
  (1)用戶管理
創建用戶 ->root
Insertintomysql.user(Host,User,Password)values("localhost","lele3",password("lele3"));
  創建完畢之後要刷新  flush privileges;
查看用戶列表
select user from mysql.user group by User;

 (2)權限分配(在root用戶下操作)
  grant 權限 on 數據庫.數據表 to 用戶@localhost identified by '用戶密碼';
  權限列表
  create 建庫建表權限
  drop  刪庫刪表權限
insert 數據插入權限
  delete  數據刪除權限
  update  數據修改權限
  select 數據讀取權限
  index 索引操作權限
  *.*  數據庫 數據表 =>o2o_14.*  o2o_14.user
  Lele4  用戶名
  分配權限之後:刷新權限  flush privileges;
(3)查看權限
  登錄當前用戶查看當前用戶(自己)權限:
show grants;
show grants;
登錄root查看其他 MySQL 用戶權限:
show grants for 用戶@localhost;
show grants for 用戶@localhost;
(4)權限奪回 (在root下進行)
  revoke 權限 on 數據庫.數據表 from 用戶名@localhost;(需要謹慎)
刷新權限flush privileges;
   注意: revoke 用戶權限後,該用戶只有重新連接 MySQL 數據庫,權限才能生效。
(5)注意
Test  information_schema數據庫和test前綴的數據庫不受權限控制
授權完畢之後要刷新權限   flush privileges;

7.數據庫備份和還原(瞭解)

7.1 數據庫備份之邏輯備份
使用MYSQLDUMP命令備份
(1)使用mysqldump備份單個數據庫中的所有表
mysqldump -u root -h localhost -p 數據庫 >/tmp/caijun.sql
(2)使用mysqldump備份數據庫中的某個表
mysqldump -u root -h localhost -p caijun stu >/tmp/stu.sql
(3)使用mysqldump備份多個數據庫
如果要使用mysqldump備份多個數據庫,需要使用--databases參數。
使用--databases參數之後,必須指定至少一個數據庫的名稱,多個數據庫名稱之間用空格隔開
mysqldump -u root -h localhost -p --databases 數據庫1 數據庫2 >/tmp/caijuno2o_13.sql 
(4)使用--all-databases參數備份系統中所有的數據庫
mysqldump -u root -h  localhost  -p --all-databases >/tmp/alls.sql
使用數據庫管理工具快速備份
 navicat
7. 2數據庫邏輯還原
(1)使用mysql命令進行還原
還原表:
mysql -u root -p 數據庫 </tmp/stu.sql
還原庫
執行語句之前我們必須建好數據庫,如果不存在恢復過程將會出錯。
mysql -u root -p caijun </tmp/caijun.sql
(2)如果已經登錄mysql,那麼可以使用source命令導入備份文件
執行source命令前必須使用use 語句選擇好數據庫,不然會出現ERROR 1046(3D000):NO DATABASE SELECTED 的錯誤
命令:
mysql> use caijun;
Database changed
mysql> source  /tmp/caijun.sql 注意空格
使用數據庫管理工具恢復數據  navicat
8.日誌操作(重點)
Mysql 日誌操作可以快速的記錄mysql的操作信息
  打開mysql配置文件,設置日誌記錄
  錯誤日誌(在啓動或者關閉數據庫信息的時候,出現錯誤,會記錄一些日誌信息) log-error=/tmp/mysql-error.log
查詢日誌(在執行增刪改查的時候,會把日誌信息記錄)  log=/tmp/mysql-query.log
慢查詢日誌  long_query_time=1  log-slow-queries=/tmp/mysql-slow.log
二進制日誌   log-bin=1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章