MYSQL汇合

本文介绍MySQL中的各种实用技巧,包括统计不重复商品数量的方法、char与varchar的区别、联合查询与连接查询的应用、读写分离的实现原理等,并深入探讨了MySQL优化策略。

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

1、MYSQL统计不重复商品个数【120W数据】
select DISTINCT(goods_name)as all_distince from goods 10个 11s多
select count(*) from goods group by goods_name 14s多
select count(*) as all_a from goods 120万 7s多
select DISTINCT(goods_name)as all_distince from goods 10个 11s多
select * from goods group by goods_name 14s多
select * from goods union select * from goods 236.849s
select goods_name from goods union select goods_name from goods 32.501s
2、char和varchar的区别:
1、char是固定长度,varchar是可变长度
2、char的查询速度快于varchar
3、varchar更节省空间
4、char会自动补齐
5、char的储存效率比varchar的效率更高
3、 varchar20可以存储几个汉字
4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节)
5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小 是65532字节
Mysql4中最大也不过是20个字节,但是Mysql5根据编码不同,存储大小也不同。
4、 查看MYSQL运行进程
show processlist
5、联合查询和链接(左,右,内)查询
子查询:必须起别名
union去重必须值一样才能去重
查询不缓存:sql_no_catch
create index index_name
alert table
6、 mysql释放内存:optimize
去重:distinct
7、 查null值 : is null
非null值: is not null
8、分表之后如何稳定id,以及数据插入那张表中
1、查询mrg_myisam这张表
2、查询视图
3、查询所有的数据,取出最大的id
4、可以单独创建一张表,记录id
5、可以把id存在redis或者memcache中
6、可以单独出来一个服务(接口),用来获取id和插入哪张表
9、 分表之后如何查询所有数据
1、union all查询
2、视图
3、使用mrg_myisam引擎
10、mysql优化

①设计角度:存储引擎的选择,字段类型选择,范式

  ②功能角度:可以利用mysql自身的特性,如索引,查询缓存,碎片整理,分区、分表等

  ③sql语句的优化方面:尽量简化查询语句,能查询字段少就尽量少查询字段,优化分页语句、分组语句等。

  ④部署大负载架构体系:数据库服务器单独出来,负载大时可以采用主从复制,读写分离机制进行设计

  ⑤从硬件上升级数据库服务器。

11、Mysql中int1和int10 有什么区别?

INT[(M)] [UNSIGNED] [ZEROFILL]
普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。
INT(1) 和 INT(10)本身没有区别,但是加上(M)值后,会有显示宽度的设置

12、Mysql事物

MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!
在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。
事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。
事务用来管理 insert,update,delete 语句
一般来说,事务是必须满足4个条件(ACID): Atomicity(原子性)、Consistency(一致性)、Isolation(隔离性)、Durability(持久性)

1、原子性:事务必须是原子工作单位,对于其数据修改,要么全部执行,要么全都不执行

2、一致性:事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性;事务结束时,所有的内部数据结构都必须是正确的

3、隔离性:由于事发所作的修改必须与任何其他并发事务所作的修改隔离。这称为可串行性,因为他能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同

4、持久性:事务完成之后,他对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持

13、Mysql主从复制
1、主从服务器分别作以下操作:
1.1、版本一致
1.2、初始化表,并在后台启动mysql
1.3、修改root的密码

2、修改主服务器master:
#vi /etc/my.cnf
[mysqld]
log-bin=mysql-bin?? //[必须]启用二进制日志
server-id=1 ? ? ?//[必须]服务器唯一ID,默认是1,一般取IP最后一段

3、修改从服务器slave:
#vi /etc/my.cnf
[mysqld]
log-bin=mysql-bin?? //[不是必须]启用二进制日志
server-id=2 ? ? ?//[必须]服务器唯一ID,默认是1,一般取IP最后一段

4、重启两台服务器的mysql

5、在主服务器上建立帐户并授权slave
mysql>GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' identified by 'q123456';

6、登录主服务器的mysql,查询master的状态
mysql>show master status;
+------------------+----------+--------------+------------------+
| File???????????? | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000004 |????? 308 |????????????? |????????????????? |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化

7、配置从服务器Slave:
mysql>change master to master_host='192.168.145.222',
master_user='mysync',
master_password='q123456',
master_log_file='mysql-bin.000004',
master_log_pos=308;
Mysql>start slave; //启动从服务器复制功能

8、检查从服务器复制功能状态:
mysql> show slave status\G
注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。

9、主从复制用到的命令
SHOW MASTER STATUS
#启动从库
Start slave
#停止从库
Stop slave
#查看从库状态
Show slave status

10、主从复制遇到的问题
不是两个yes
20分钟断开

11、主从复制主键冲突
auto_increment_offset 从1开始
auto_increment_increment 增长2

14、mysql优化,读写分离如何实现?
mysql优化前面已经总结了。主要说下读写分离,当我们的数据量很大时,数据库服务器的压力变大,这时候我们需要从架构方面来解决这一问题,在一个网站中读的操作很多,写的操作很少,这时候我们需要配置读写分离,把读操作和写操作分离出来,最大程度的利用好数据库服务器。读写分离的实现原理就是在执行SQL语句的时候,判断到底是读操作还是写操作,把读的操作转向到读服务器上(从服务器,一般是多台),写的操作转到写的服务器上(主服务器,一般是一台,视数据量来看)。当然为了保证多台数据库数据的一致性,需要主从复制。主从复制的实现原理是:mysql中有一种日志,叫做bin日志(二进制日志),会记录下所有修改过数据库的sql语句。主从复制的原理实际是多台服务器都开启bin日志,然后主服务器会把执行过的sql语句记录到bin日志中,之后从服务器读取这个bin日志,把该日志的内容保存到自己中继日志里面,从服务器再把中继日志中记录的sql语句同样的执行一遍。这样从服务器上的数据就和主服务器相同了。
















 











内容概要:本文档提供了关于“微型车间生产线的设计与生产数据采集试验研究”的毕业设计复现代码,涵盖从论文结构生成、机械结构设计、PLC控制系统设计、生产数据采集与分析系统、有限元分析、进度管理、文献管理和论文排版系统的完整实现。通过Python代码和API调用,详细展示了各个模块的功能实现和相互协作。例如,利用SolidWorks API设计机械结构,通过PLC控制系统模拟生产流程,使用数据分析工具进行生产数据的采集和异常检测,以及利用进度管理系统规划项目时间表。 适合人群:具有机械工程、自动化控制或计算机编程基础的学生或研究人员,尤其是从事智能制造领域相关工作的人员。 使用场景及目标:①帮助学生或研究人员快速搭建和理解微型车间生产线的设计与实现;②提供完整的代码框架,便于修改和扩展以适应不同的应用场景;③作为教学或科研项目的参考资料,用于学习和研究智能制造技术。 阅读建议:此资源不仅包含详细的代码实现,还涉及多个学科领域的知识,如机械设计、电气控制、数据分析等。因此,在学习过程中,建议读者结合实际操作,逐步理解每个模块的功能和原理,并尝试调整参数以观察不同设置下的系统表现。同时,可以参考提供的文献资料,深入研究相关理论和技术背景。
本次的学生体质健康信息管理网站,按照用户的角色可以分为教师与学生,后台设置管理员角色来对学生的信息进行管理。,设计如下: 1、后台管理系统 后台管理系统主要是为该系统的管理员提供信息管理服务的系统,具体包括的功能模块如下: (1)管理员信息管理 (2)教师信息管理 (3)学生信息管理 (4)健康信息统计(图形化进行健康,亚健康等学生的信息数量统计) 2、教师角色的功能模块设计 教师角色所需要的功能模块主要包括了如下的一些内容: (1)个人资料修改 (2)学生体质健康管理:录入相关数据,包括但不限于身高、体重、肺活量、视力等生理指标以及运动能力、身体成分、骨密度等健康指标,并且设置健康,亚健康状态 (3)学生健康建议:根据体质信息,进行学生健康的建议 (4)健康预警:对健康出问题的学生,进行健康预警 (5)饮食和锻炼情况管理,查看 3、学生角色 学生角色可以通过该信息网站看到个人的基本信息,能够看到教师给与学生的健康建议等,功能模块设计如下: (1)个人资料修改 (2)我的健康建议查看 (3)我的健康预警 (4)饮食和锻炼情况管理,记录平时的饮食和锻炼情况 完整前后端源码,部署后可正常运行! 环境说明 开发语言:Java后端 框架:ssm,mybatis JDK版本:JDK1.8+ 数据库:mysql 5.7+ 数据库工具:Navicat11+ 开发软件:eclipse/idea Maven包:Maven3.3+ 部署容器:tomcat7.5+
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值