数据库优化之中文分词:

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

转载于:https://blog.51cto.com/13346331/2112745

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值