博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql优化
阅读量:4677 次
发布时间:2019-06-09

本文共 2433 字,大约阅读时间需要 8 分钟。

表的分区

  1. 数据量过大的时候,这个时候需要将一张表的数据划分几张存储,这样查找就不用查找其他剩余的分区了.
  2. mysql是否支持分区.
    1. show variables like '%partition%'是否是yes
    2. range分区
    3. List分区
    4. hash分区
    5. keys分区
    6. show create table emply \G 可以查看当前对于emply进行的分区
    7. alter table empy drop partition pNorth; 删除分区也会导致数据被删掉.
    8. alter table empy add partition(partition pNorth values in(3,4,6,8,)) 添加分区
  3. range分区
create table emolt(    id int not null,    store_id int not null)partition by range(store_id)(    partition p0 values LESS THEN(6),    partition p1 values LESS THEN(11),    partition p2 values LESS THEN(13)    partition p3 values LESS THEN MAXVALUE);
  1. list分区
地区  商店id号    北区  3,5,6,7,17    东区  1,23,10,20    西区  2,3,4,26,39

离散的值分区用list创建

partition by list( store_id)( PARTITION PNOR VALUES IN(3,5,7,19), PARTITION PEWA VALUES IN(1,2,3,56,19,5), PARTRION PAD VALUES IN(7,89,13))
  1. 如果插入的值不在分区里,会报错
  2. hash分区
partition by HASH(store_id)partitions 4;算出hash值,分4个区,不写的话放到一个区里

mysql优化

  • myisam优化
    1. optimize TABLE bbs_info\G
    2. my.ini下key_buffer_size myisam索引的缓存大小
  • innodb内存优化
    1. innodb_buffer_pool_size 存储缓存大小
    2. innodb_log_buffer_size事务日志缓存大小
    3. 调整mysql并发相关参数
      1. max_connection=100 同时响应100个请求
      2. 调整thread_cache_size加快连接数据库的速度.控制缓存客户服务线程的数量
      3. innodb_lock_wait_timeout控制事务等待行锁的时间
  • 应用程序优化
    1. mysql把连接对象放在连接池里.
    2. sql优化
    3. query_cache_type是否打开缓存 show variables like "query_cache_type";
    4. 负载均衡(读写分离)
      1. 主服务器,增删改操作
      2. 从服务器1,从服务器2,从服务器3, 查询操作

# 权限管理

grant select on *.* to zy@localhost indentified by '123456' with grant option;
  • 查询权限show grants for 'zy'@'localhost'\G
  • 删除账户drop user 'zy'@'localhost';
  • 修改密码set password for 'ty'@'localhost'=password('123');

mysql监控

  1. 自己写程序脚本控制(数据库比较小)
    1. mysqladmin -uroot -p123456 -h127.0.0.1 ping
    2. mysqladmin -uroot -p123456 -h127.0.0.1 status
    3. mysqladmin -uroot -p123456 -h127.0.0.1 processlist连接数
    4. mysql -uroot -p123456 -BNe "select host,count(host) from processlist group by host;" information_schema统计连接的客户端
    5. mysqlcheck -uroot  -p123456 --all-databases;检测分析优化
    6. show status like 'innodb_log%' innodb_log空间不足造成的等待次数
    7. show status like "%lock%"表锁行锁的等待次数
    8. show status like 'created_tmp%' 是否有临时表过大而从内存中换出到磁盘上
  2. 商业解决方案
  3. 监控开源软件

mysql定时维护

||5.1版本开始支持定时器.

  1. show variables like '%event_scheduler%' event_scheduler 定时器开关.
  2. 开启定时器 set global event_scheduler=1
  3. 关闭定时器 set global event_scheduler=0
drop event if exists test_event;create event test_eventon schedule every 1 second  每隔一秒钟执行on completion preserve disable 当停掉定时器,他还是存在的do call p_event_insert(); 调用存储过程alter event test_event on completion  preserve enable; 开启定时器

转载于:https://www.cnblogs.com/daixh/p/11016827.html

你可能感兴趣的文章
What does the dot after dollar sign mean in jQuery when declaring variables?
查看>>
windows registry
查看>>
jquery 动画总结(主要指效果函数)
查看>>
leetcode-17-电话号码的字母组合’
查看>>
Flume 示例
查看>>
Designing for Performance
查看>>
HTML属性的应用
查看>>
HEAP CORRUPTION DETECTED
查看>>
Android URI简单介绍
查看>>
蒙板 模态对话框
查看>>
pythong中的全局变量的调用和嵌套函数中变量的使用
查看>>
【POJ - 3009】Curling 2.0 (dfs+回溯)
查看>>
Windows下载安装良心教程
查看>>
浅析商业银行“业务连续性管理体系”的构建
查看>>
【分享】从《水浒传》中反思什么是真正的执行力
查看>>
java中的static
查看>>
5.侧边栏逻辑
查看>>
评论博客
查看>>
用户代理字符串识别工具源码与slf4j日志使用
查看>>
算法导论第6部分图算法,第22章图的基本算法
查看>>