mysql
ChinaMuZhe
热爱代码
展开
-
sqlsession
同一个select,在同一个事务中(同一个sqlsesion对象),会优先从sqlsession缓存中获取。容易出问题的代码:在一个较大的事务中,某个函数A内调用了select,并且对结果进行了操作,比如set。然后在当前函数A中又调用了另一个函数B,函数B内也调用了此select,并且需要对结果进行判断。因为在函数A中对结果进行了操作,并且缓存到了sqlsession中。所以在函数B中拿到的信息并不是和数据库中的一样。可能会对函数B的一些逻辑(权限,if等)判断有影响,导致整个事务逻辑失败。原创 2020-11-12 17:40:48 · 931 阅读 · 1 评论 -
Sql优化-2 索引
索引是数据库优化中最常用也是最重要的手段之一,通过索引通常可以帮助用户解决大多数的 SQL 性能问题。下面将对 MySQL 中的索引的分类、存储、使用方法做详细的介绍。索引的存储分类 索引的存储类型目前只有两种,BTREE 和 HASH,MyISAM 和 InnoDB 存储引擎都只支持 BTREE 索引。MySQL 如何使用索引 索引用于快速找出在某个列中有一特定值的行。对...原创 2018-06-29 16:07:02 · 240 阅读 · 2 评论 -
Sql优化-3 两个简单实用的优化方法
定期分析表和检查表 分析表的语法如下:ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ... 本语句用于分析和存储表的关键字分布,分析的结果将可以使得系统得到准确的统计信息,使得 SQL 能够生成正确的执行计划。如果用户感觉实际执行计划并不是预期的执行计划,执行一次分析表可能会解决问题。在分析期间,...原创 2018-07-03 10:36:25 · 755 阅读 · 0 评论 -
mysql配置项的优化
 最近项目不太忙,所以有时间静心来研究下mysql的优化,对于MySQL的设置是否合理优化,直接影响到网站的速度和承载量!同时,MySQL也是优化难度最大的一个部分,不但需要理解一些MySQL专业知识,同时还需要长时间的观察统计并且根据经验进行判断,然后设置合理的...转载 2018-07-03 15:06:54 · 359 阅读 · 0 评论 -
Sql优化-1 优化 SQL 语句的一般步骤
当面临sql性能优问题时,可以通过以下步骤,定位到问题sql并解决问题。第一步:通过show status命令来了解各种sql的执行频率 MySQL 客户端连接成功后,通过 show [session|global]status 命令可以提供服务器状态信息,也可以在操作系统上使用 mysqladmin extended-status 命令获得这些消息。show[session|glo...原创 2018-06-29 16:17:08 · 358 阅读 · 0 评论 -
mysql5.7主从配置
环境: 两台win10电脑,主数据库所在服务器ip:10.50.12.50 mysql版本均为5.7.17。(此文章适用于Mysql5.7版本)配置主数据库: 修改my.ini文件。我的在C:\ProgramData\MySQL\MySQL Server 5.7\my.ini# Binary Logging.#主从配置,二进制日志文件,log-bin = "C:/P...原创 2018-07-11 10:05:07 · 252 阅读 · 0 评论 -
Sql优化-4 sql优化经典例子
场景我用的数据库是mysql5.6,下面简单的介绍下场景课程表create table Course( c_id int PRIMARY KEY, name varchar(10) )数据100条学生表:create table Student( id int PRIM...转载 2018-07-04 11:56:04 · 310 阅读 · 0 评论 -
sql语句中 drop truncate和delete的区别
drop 将表所占用的空间全释放掉。 语法:drop table 表名;truncate 一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。 语法:truncate table 表名;delete 执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务...原创 2018-07-05 11:01:23 · 801 阅读 · 0 评论 -
mysql--探索数据类型float
在Mysql中,float和double用来表示浮点数。他们的精确性都有些问题。下面我们通过测试来探索一下float测试一: 测试不指定精度的效果。如下图:结论:在不指定精度的情况下,folat默认是6位有效数字。测试二:指定精度float(m),如下图:结论:和不指定精度相同,只保留6位有效数字。如果单指定精度m,m>24时,float会变为doubl...原创 2019-03-07 16:06:07 · 749 阅读 · 0 评论