在本文中,我们将给您介绍关于mysql查询优化技巧的详细内容,并且为您解答mysql查询优化方法的相关问题,此外,我们还将为您提供关于Can''tconnecttolocalMySQLserverth
在本文中,我们将给您介绍关于mysql 查询优化技巧的详细内容,并且为您解答mysql查询优化方法的相关问题,此外,我们还将为您提供关于Can''t connect to local MySQL server through socket ''/opt/lampp/var/mysql/mysql.sock'' (2)、Can''t connect to local MySQL server through socket ''/var/lib/mysql/mysql.sock''、CentOS yum安装mysql后 Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’、centos7 设置 mysql 自启动的配置文件中 [Service] User=mysql Group=mysql,user 和 group 这边的 mysql 是指的什么?centos 的登录用户名?的知识。
本文目录一览:- mysql 查询优化技巧(mysql查询优化方法)
- Can''t connect to local MySQL server through socket ''/opt/lampp/var/mysql/mysql.sock'' (2)
- Can''t connect to local MySQL server through socket ''/var/lib/mysql/mysql.sock''
- CentOS yum安装mysql后 Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’
- centos7 设置 mysql 自启动的配置文件中 [Service] User=mysql Group=mysql,user 和 group 这边的 mysql 是指的什么?centos 的登录用户名?
mysql 查询优化技巧(mysql查询优化方法)
查询使用索引相关
1, 避免在 sql 的 where 条件中使用 函数,会导致索引失效
2, join 两个表时,如果关联字段数据类型不一致,请使用类型转换函数。
3, sql 中的条件值必须与字段类型一致, 避免数据库做隐式类型转换,导致索引失效 (数据类型禁止加引号,字符串必须加引号).
4, 避免使用 左模糊 ( like ''%xxx'' ), 全模糊查询。 尽量 使用 右模糊查询,可以走索引。
5, join , in , not in , exists , not exists 性能比较
A, 字段上有索引: exists(好) -- in 差-- join 最差
B, 字段上无索引 : join 好 -- exists 差 -- in 最差
C, 字段上有索引 : left join 好--- not exists 差 -- not in 最差
D, 字段上无索引 : not in 好 --- not exists 差 -- left join 最差
6, 尽量不要使用 反向查询, 例如 not in , != , not like 它们不走索引
7, 尽量不要or , 不走索引 , 如果可以用 in 代替, in 元素个数要严格控制, 防止 超额,建议 最大不超过 200
8, 日期字段查询统一使用 这种格式的字符串 "yyyy-MM-dd HH:mm:ss" ; mysql 的日期类型与字符类型相同的,不需要做额外的类型转换。 比如 select id where time >=''2010-01-10 01:10:20''
9, 避免多于排序:使用 group by 时,数据库默认是会进行排序操作的,如果 不需要,可以使用 group by NULL 避免数据库排序(提升查询效率和 减少资源开销) select id form user group by name order by NULL ;
- 业务程序禁止使用 存储过程, 触发器,函数,作业和视图等, 一些特殊日期, 聚合等函数除外。
11, 尽量使用 join 连接查询 代替子查询
12, 所有内连接, 需将 关联表统一写到 from 子句中,关联条件和过滤条件统一写到 where 子句中
13, 外连接都用 left join ,不用 right join
-
多表连接的分页语句,如果 过滤条件在单个表上, 需要先分页再 join 连接 比如 : select a.name ,b.id from ( select id,name from user where id>100 order by id limit 0,10 ) a inner join shop b where a.id = b.id;
-
在 iBatis 中,尽量不要使用 $name$ , 应该采用 #name# 防止sql注入
-
inser into 语句也必须指定具体字段名称。 禁止写成 insert into user values(...)
-
SQL 中 尽量避免出现 now() , rand() , sysdate() , current_user() 等不确定结果的函数
-
禁止用 select for update 语法
其他知识
1, insert ignore into 当 插入 数据时,如出现错误,重复数据, 将不返回错误,只以经过形式返回。所以使用 ignore 请确保语句本身没有问题,否则也会被忽略掉 比如:
insert ignore into books(name) valuse (''xxx'');
2, on duplicate key update 当 primary 或者 unique 重复时, 则执行 update 语句,在原有记录基础上,更新指定字段内容, 其他字段内容保留,如果 update 后为无用语句,如id =id ,错误不会被忽略,为了实现 name 重复的数据插入不报错,可使用 下语句:
insert into books(name) values ''xxx''
on duplicate key update id=id ;
3, insert ... select ... where not exist 根据 select 的条件判断是否插入, 可以不光通过 primary 和 unique来判断, 也可以通过其他条件
insert into books(name)
select id from dual where
not exists (select id from books where id=1)
4, replace into 如果存在 primary or unique 相同的记录, 则先删除再插入新的记录。 如果记录有多个字段,在插入的时候如果有的字段 没有赋值,那么新插入的记录字段为空
replace into books select 1 from books
- 大表一般用distinct效率不高,大数据量的时候都禁止用distinct,建议用group by解决重复问题。
以上 来自 书籍 BAT 公司员工的MYSQL 修为
Can''t connect to local MySQL server through socket ''/opt/lampp/var/mysql/mysql.sock'' (2)
ERROR 2002 (HY000): Can''t connect to local MySQL server through socket ''/opt/lampp/var/mysql/mysql.sock'' (2)
原因:系统盘满了
[root@localhost opt]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
18G 17G 0 100% /
tmpfs 504M 0 504M 0% /dev/shm
/dev/sda1 477M 80M 372M 18% /boot
[root@localhost opt]#
解决:
删除大文件后,重启系统解决
[root@localhost mysql]# /opt/lampp/lampp status
Version: XAMPP for Linux 1.8.3-3
Apache is not running.
MySQL is not running.
ProFTPD is running.
df: 未处理文件系统
[root@localhost opt]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
18G 17G 0 100% /
tmpfs 504M 0 504M 0% /dev/shm
/dev/sda1 477M 80M 372M 18% /boot
[root@localhost opt]#
[root@localhost ~]# /opt/lampp/lampp status
Version: XAMPP for Linux 1.8.3-3
Apache is not running.
MySQL is running.
ProFTPD is running.
转
xampp 无法启动mysql 找不到mysql.sock
(2016-02-24 23:21:24)
分类: 技术 |
如果xampp中的mysql启动不了,出现ERROR 2002 (HY000): Can''t connect to local MySQL server through socket ''/opt/lampp/var/mysql/mysql.sock'' (2)报错,
停止xampp的时候报:
-bash-4.1# /opt/lampp/lampp stop
Stopping XAMPP for Linux 1.8.2-6...
XAMPP: Stopping Apache...ok.
XAMPP: Stopping MySQL...ok.
XAMPP: Stopping ProFTPD...kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
fail.
解决办法:
如果网上一些方法不好用的话,可以试试以下方法:
1. 确定系统盘是否满了
#df -h
2. 删除/opt/lampp目录中的pid文件(删掉后xampp重启时会重建,如果不放心,可以先备份lampp目录)
删除mysql相关缓存:
#rm -rf /opt/lampp/var/mysql/VM_*
删除proftp相关缓存:
#rm -rf /opt/lampp/var/proftpd.pid
如果找不到pid文件,可以搜一下:
#find /opt/lampp -name ''*.pid''
Can''t connect to local MySQL server through socket ''/var/lib/mysql/mysql.sock''
MySQL已经被我移到数据盘了,本地连接数据库会报错:Can''t connect to local MySQL server through socket ''/var/lib/mysql/mysql.sock''
但是远程是可以连接的,my.cnf设置mysql的根目录也改成了数据盘的地址,还要在加上client的参数,设置如下:
[client]
socket = /home/data/mysql/mysql.sock
之后重启下mysql就可以了
CentOS yum安装mysql后 Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’
亲,是不是忘记了开MysqL服务,service MysqLd startcentos7 设置 mysql 自启动的配置文件中 [Service] User=mysql Group=mysql,user 和 group 这边的 mysql 是指的什么?centos 的登录用户名?
centos7 设置 mysql 自启动的配置文件中
[Unit] Description=MySQL Server Documentation=man:mysqld(8) Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html After=network.target After=syslog.target [Install] WantedBy=multi-user.target [Service] User=mysql Group=mysql ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf LimitNOFILE = 5000 #Restart=on-failure #RestartPreventExitStatus=1 #PrivateTmp=false
这里的
[Service]
User=mysql
Group=mysql,
user 和 group 这边的 mysql 是指的什么?centos 的登录用户名?还是其他呢?
今天的关于mysql 查询优化技巧和mysql查询优化方法的分享已经结束,谢谢您的关注,如果想了解更多关于Can''t connect to local MySQL server through socket ''/opt/lampp/var/mysql/mysql.sock'' (2)、Can''t connect to local MySQL server through socket ''/var/lib/mysql/mysql.sock''、CentOS yum安装mysql后 Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’、centos7 设置 mysql 自启动的配置文件中 [Service] User=mysql Group=mysql,user 和 group 这边的 mysql 是指的什么?centos 的登录用户名?的相关知识,请在本站进行查询。
本文标签: