mysql
_sleeping
这个作者很懒,什么都没留下…
展开
-
数据库连接池简介
什么是连接池数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放。为何使用连接池传统连接每次操作数据库都打开一个物理连接,使用完都关闭连接,这样造成系统的性能低下。而连接池第一次访问的时候,需要建立连接。 但是之后的访问,均会复用之前创建的连接,直接执行SQL语句。该策略保证了...原创 2019-11-03 17:05:56 · 343 阅读 · 0 评论 -
Mysql查询优化
from 型子查询注意:内层from语句查到的是临时表,是没有索引的所以:from的返回内容要尽量少,需要排序,在内层先排好序强制索引select id from areause index(primary)where pid=11 order by id desc limit 1;count()优化误区:1.myisam的count()查询非常快,但仅限于查询表的所有...原创 2018-08-09 10:48:02 · 114 阅读 · 0 评论 -
mysql慢查询日志分析
简单介绍下如何发现有问题的sql;使用mysql慢查询日子对有效率问题sql进行监控,使用工具进行分析是否开始慢查询日志;show variables like ‘slow_query_log'; 查看变量的设置show variables like "log%";将没有设置索引的sql记录入日志 set global log_queries_not_using...原创 2018-08-27 12:19:39 · 1033 阅读 · 0 评论 -
explian分析sql语句详解
explian语句用于分析sql的执行计划,如下select_type:查询类型 simple不含子查询 primary(含子查询或者派生查询) subquery(非from子查询) derived(from型子查询) union union resulttable:查询针对的表 有可能是 实际的表 ...原创 2018-08-08 11:34:47 · 962 阅读 · 0 评论 -
btree索引和hash索引
索引类型 btree索引和hash索引1.hash索引(存在内存中)在memory表默认是hash索引的理论查询时间复杂度为O(1)疑问:既然hash的查找如此高效,为什么不用hash索引答:1).hash函数计算后的结果,是随机的,结果是在磁盘上随机放置2).无法对范围查询进行优化3).无法利用前缀索引,比如在btree中,比如查询helloword的hello前...原创 2018-08-08 11:32:10 · 384 阅读 · 0 评论 -
聚簇索引和非聚簇索引
聚簇索引和非聚簇索引 聚餐索引:数据存放在索引叶子节点下非聚餐索引:索引和数据不是放在一起myisam (使用非聚餐索引,索引和数据不是放在一起)1.索引和数据分别为单独的文件,数据文件在磁盘上,每行都有自己的地址2.主索引和次索引都指向行在磁盘的位置3.先从索引树找到数据的所在的位置,然后再到数据上取如下图所示 innodb 1.innodb...原创 2018-08-08 11:30:33 · 642 阅读 · 0 评论 -
mysql分区
mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可以通过my.cnf中的datadir来查看),一张表主要对应着三个文件,一个是frm存放表结构的,一个是myd存放表数据的,一个是myi存表索引的。如果一张表的数据量太大的话,那么myd,myi就会变的很大,查找数据就会变的很慢,这个时候我们可以利用mysql的分区功能,在物理上将这一...原创 2018-10-09 21:44:57 · 142 阅读 · 0 评论 -
mysql存储json格式中文问题解决
由于有些数据内容字段格式不固定需要使用json存储,mysql在存储json时,存在中文会把\过滤掉,导致读取的数据有问题,解决方案PHP5.4支持JSON_UNESCAPED_UNICODE这个参数,此参数是让中文字符在json_encode的时候不用转义但在PHP5.3中,就得自己写个函数来实//json中文处理function json_encode_mb($array){ ...原创 2018-10-21 22:12:22 · 3454 阅读 · 0 评论