mysql

A collection of 10 posts

mysql

SQL经验备忘1

根据业务查询数据,首先要找到各个业务对应的数据表 根据需求理清需要查询的数据表之间的关联关系,并确定业务的目标数据表,然后展开查询 查询的表一定有数据记录的放在前面,并且连接条件也必须是有数据记录的;可能为空的表放在后面,这样可以避免少量字段数据为空,也杜绝数据重复 子查询量大可使用JOIN关联,少量则可放查询字段里 end.

mysql

MySQL性能优化1

略记一次MySQL优化实践. 效果:加载过程从5分钟到0.5秒 实践:需要代码和SQL结合进行优化过程 方法: 1.从Profile和Explain对索引和排序效率分析。索引类型至少到Ref级别,排序不应用到临时表和文件排序,保证在内存中进行.此操作可提升至1.5分钟. 2.SQL中保证WHERE条件只出现一次,若SQL中包含了视图,那么视图中的WHERE条件,应提取出来放在外层,并且视图也需要从第1步开始进行优化. 遇到的问题: 1.视图中带WHERE条件会导致Count方法超慢,要么物化,要么去掉WHERE,优选后者. 2.在Profile信息中,creating sort index有时会占据90%的时间,应使用索引排序,避免文件排序和临时表排序. 3.多表的JOIN连接影响性能很小,可以忽略不计. 4.WHERE条件比JOIN ON条件更好,条件尽量外放WHERE里. 5.待续...

mysql

Oracle与MySQL的几点区别

Oracle数据库与MySQL数据库的区别是本文我们主要介绍的内容,希望能够对您有所帮助。 1.组函数用法规则 mysql中组函数在select语句中可以随意使用,但在oracle中如果查询语句中有组函数,那其他列名必须是组函数处理过的,或者是group by子句中的列否则报错 eg: select name,count(money) from user;这个放在mysql中没有问题在oracle中就有问题了。 2.自动增长的数据类型处理 MYSQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。ORACLE没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。 CREATE SEQUENCE序列号的名称(最好是表名+序列号标记)INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE; 其中最大的值按字段的长度来定,如果定义的自动增长的序列号NUMBER(6),最大值为999999 INSERT语句插入这个字段值为:

mysql

php mysql插入的数据乱码

插入的数据乱码有很多原因: 1、你要检查一下页面的编码和数据库设置的字符集是否一样,要么都是utf8,要么都是gbk的 2、如果第一点说的两边编码是统一的,你可以在链接数据库的时候加上 mysql_query("set names utf8") 3、加上之后还是不行的话,在检查你的页面编码,如果是utf8的话,请选择没有bom的utf8编码 4、以上都没问题的话,还出现乱码的话,修改mysql的配置文件,my.ini加上character-set-server=utf8,然后重启mysql服务就可以了 一般出现乱码的话,基本就是这些原因了 原文地址: http://zhidao.baidu.com/link?url=vrMk8c0cZ7ZuUtAeTotznOnBTcLfHW2GQMXmL9XweiyCbr6WduKLvJCTnKqgor-lpKgzRaUHUK_PmovWvGg9PK