逆范式:1对多的时候应当尽可能的把冗余放在一那边 #查看语句的执行次数 show status show create database; #设置id自动增长的值 alter table test auto_increment=2; #mysql myisam 引擎删除的记录不是释放硬盘空间 optimize table table_name; 关心以com开头的命令 show status like ‘com%‘ show (session) status like ‘com_select‘; //本次会话 show global status like ‘com_select‘; //从启动到现在 connextions 试图连接数据库的次数 status like ‘com_select‘; show status like ‘uptime‘; 服务器启动时间 show status like ‘slow_queries‘; //慢查询次数,默认是十秒 显示慢查询 show variables like ‘long_query_time‘;设置 关于mysql中的 dual 表可以看错是一个虚拟表,只是为符合 select * from table_name 这一查询格式而已 启动慢查询日志: mysqld.exe -slow-query-log 数据文件my.ini datadir设置 //设置慢查询时间 set long_query_time = 1; __________________________________________________ 第一步:修改my.ini(mysql配置文件) 在my.ini中加上下面两句话 log-slow-queries = D:\wamp\mysql_slow_query.log long_query_time=5 第一句使用来定义慢查询日志的路径(因为是windows,所以不牵涉权限问题) 第二句使用来定义查过多少秒的查询算是慢查询,我这里定义的是5秒 第二步:查看关于慢查询的状态 执行如下SQL语句来查看mysql慢查询的状态 show variables like ‘%slow%‘; 执行结果会把是否开启慢查询、慢查询的秒数、慢查询日志等信息打印在屏幕上。 第三步:执行一次慢查询操作 下语句代替: SELECT SLEEP(10); 第四步:查看慢查询的数量 通过如下sql语句,来查看一共执行过几次慢查询: show global status like ‘%slow%‘; explain:分析会不会用到索引,但不能分析出用多少时间 导入大量数据时: alter table table_name disable keys; loading data; alter table table_name enable keys; 查看见表SQL: show create table table_name; 对于 myisam数据库,需要定时清理 optimize table 表名 用连接代替子查询 使用join,mysql不需要在内存中国年创建临时表 如果想要 or 用到索引则,or的条件必须都加索引 在精度要求较高的项目中,用定点数来来保存,以保证准确性 全部用 decimal 更准确 date 函数最多 2038 年 此时的时间戳正好为 int 有符号的最大值 查看索引的使用情况 show status like ‘handler_read‘; handler_read_key: 高了好 handler_read_rnd_next: 低了好 字段的类型匹配不一致可能会用不到索引: 字符串型字段 = 123 用不到索引 字符串型字段 = "123" 可以用索引