MySQL实用功能及优化手段

本文提供MySQL数据库的全面管理技巧,包括查询各表数据量、内存缓存使用情况检查、数据库优化建议、表复制操作、连接使用情况查看、事件状态开启、SQL进程显示、慢查询日志设置及千万级数据导入策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.MySQL查询各个表的数据量

use information_schema;
select table_name,table_rows from tables
where TABLE_SCHEMA = '数据库名字'
order by table_rows desc;

2.查看内存缓存使用情况

SHOW GLOBAL STATUS LIKE 'innodb_buffer_pool_pages_%';

3.MySQL数据库优化建议

1) 数据库最大连接调到1000
2) innodb_buffer_pool_size=4G
3) innodb_flush_log_at_trx_commit=0
4) innodb_log_file_size=1000M

4.MySQL复制表操作

create table bi_core_order201811 as select * from 表名 where 查询条件

5.MySQL查看连接使用情况

show status like 'Threads%';
show global status like 'Max_used_connections';
show variables like '%max_connections%';

5.MySQL事件开启状态

show variables like 'event_scheduler';

6.显示当前SQL进程

show processlist

7.显示开启MySQL查询慢日志功能

set global slow_query_log = on; 
set global log_output = file;
set long_query_time = 1;
show variables like '%quer%';

8.MySQL导入千万级的数据

  load data infile "D:/temp.csv" into table  detail     fields terminated by ',' ENCLOSED BY '"'  ESCAPED BY "\\";

MySQL查询技巧

  1. 当查询一条记录的时候,请在查询记录后面加上 limit 1能提高查询速度
  2. MySQL字符串截取函数 substring_index(before_imgs, ‘@’, 1) ‘beforeimgs’ 将before_images字段按照@分割取第一个
  3. 查询今日数据:TO_DAYS(optime)=TO_DAYS(now())
  4. 查询昨日数据:DATEDIFF(optime,NOW())=0
  5. 有的时候我们命名的字段有可能会跟数据库关键词重复,建议查询的字段都加上field转义一下
  6. 数据冗余并不是一件坏事,有时候它不光能够提高查询速度,而且也是对过去数据留下的一个证据,但是关联的字段建议保留,方便需要时进行数据更新,尤其是针对数据更新慢或者不更新的字段,冗余是一个好事。
  7. 并不是所有的数据库操作都需要开启事务,尤其是查询的时候,对于大部分应用和系统来说,查询的时候真的没有必要加上事务。
  8. 所有的数据库持久层框架都是基于JDBC不要认为框架一定好,拿MyBatis和Hibernate来说,他们其实针对与大型项目有优势,低于50万的项目,优势不是很明显,并且如果数据量大了查询优化也没有底层的JDCB方式方便,如果你的技术够硬,你可以针对JDBC做一层封装,这样方便后期功能升级,就算项目发展成了大型项目,你也能很轻松的对街上成熟的持久层框架。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值