MySQL
文章平均质量分 64
IIIThSoul
这个作者很懒,什么都没留下…
展开
-
SQL语句优化
大量插入数据时SQL语句的优化 1)对于MyISAM类型的表,可以通过以下方式快速地导入大量数据: 这两个命令用来打开或者关闭MyISAM表非唯一索引的更新。在导入大量的数据到一个飞空的MyISAM表是,通过设置这两个命令,可以提高导入的效率。对于导入大量数据到一个空的MyISAM表,默认就是先导入数据然后才创建索引的,所以不用进行设置。 er对于InnoDB类型的表,这种方式并不能原创 2014-12-31 22:57:02 · 242 阅读 · 0 评论 -
MySQL存储引擎
几个常用存储引擎的特点 特点 MyISAM BDB Memory InnoDB Archive 存储限制 没有 没有 有 64TB 没有 锁机制 表锁 页锁 表锁 行锁 行锁 B树索引 支持 支持 支持 支持 哈希索引 支持 支持 全文索引 支持原创 2014-12-31 17:44:24 · 188 阅读 · 0 评论 -
MySQL下优化SQL的一般步骤
通过show status和应用特点了解各种SQL的执行效率 通过SHOW STATUS可以提供服务器状态信息,也可以使用mysqladmin extended-status命令获得。SHOW STATUS可以根据需要显示session级别的统计结果和global级别的统计结果。 以下几个参数对MyISAM和InnoDB存储引擎计数: Com_select:执行SELECT操作的次数原创 2014-12-31 21:20:00 · 199 阅读 · 0 评论 -
SQL注入
SQL注入(SQL Injection)攻击具有很大的危害,攻击者可以利用它读取、修改或删除数据库内的数据,数据数据库中的用户名和密码等蜜柑信息,甚至可以获得数据库管理员的权限。如果能够再利用SQLServer扩展存储过程和自定义扩展存储过程来执行一些系统命令,攻击者还可以获得系统的控制权。而且,SQL Injection也很难防范。网站管理员无法通过安装系统补丁或者进行简单的安全配置进行自我保护原创 2014-12-31 18:39:43 · 235 阅读 · 0 评论 -
MySQL SQL模式(Mode)
MySQL服务器能够工作在不同的SQL模式下,并能够针对不同的客户端以不同的方式应用这些模式。这样,应用程序就能对服务器进行量身定制以满足自己的需求。这类模式定义了MySQL应支持的SQL语法,以及应该在数据上执行何种确认检查。这样,就能在众多不同的环境下、与其他数据库服务器一起更容易地使用MySQL。 可以使用“--sql-mode="modes"”选项,通过启动mysqld模式来设置原创 2014-12-31 20:10:10 · 305 阅读 · 0 评论 -
MySQL锁的优化
获取锁等待情况 可以通过检查table_locks_waited和table_locks_immediate状态变量来分析系统上的表锁定争夺: 可以通过检查Innodb_row_lock状态变量来分析系统上的行锁争夺情况: 另外,针对InnoDB类型的表,如果需要查看当前的锁等待状况,可以这是InnoDB Monitors,然后通过show innodb status查看,设置的原创 2015-01-01 21:15:36 · 243 阅读 · 0 评论 -
另外一些MySQL优化措施
使用MySQL连接池提高性能 对于访问数据库来说,建立连接的代价比较昂贵,因此,我们有必要建立“连接池 ”来提高访问的性能。我们可以把连接当做对象或者设备,池中又有许多已经建立的连接,访问本来需要与数据库的连接的地方,都改为和池相连,池临时分配连接提供访问上使用,结果返回后,访问将连接交还。 减少对MySQL的访问以优化SQL语句 1)避免对同一数据做重复检索原创 2015-01-02 08:57:29 · 264 阅读 · 0 评论 -
MySQL日志
错误日志 记录内容:包含了MySQLD启动和停止时,以及服务器在运行过程中发生的任何严重错误时的相关信息 文件位置和格式:可以用- - log-error[ = file_name ]选项来指定mysqld保存错误日志文件的位置,如果没有给定file_name值,mysqld使用错误日志名host_name.err并在数据目录中写入日志文件。 BINLOG原创 2015-01-02 09:20:39 · 193 阅读 · 0 评论 -
MySQL索引优化
索引的存储类型 MyISAM表的数据文件和索引文件是自动分开的;InnoDB的数据和索引是存储在同一个表空间里面,但可以有多个文件组成。 创建索引的语法如下: 索引的存储类型目前有两种(B-Tree和Hash),具体和表的模式相关: MySQL如何使用索引 索引用于快速找出在某个列中有一特定值的行。对相关列使用索引是提高SELECT操作性能的最佳途径。 查询原创 2014-12-31 21:43:00 · 194 阅读 · 0 评论 -
MyISAM与InnoDB区别
MyISAM,默认类型,基于传统的ISAM类型,ISAM是Indexed Sequential Access Method(有索引的顺序访问的方法)的缩写,是存储记录和文件的标准方法。 与其他存储引擎比较,MyISAM具有检查和修复表格的大多数工具,MyISAM表格可以被压缩,而且它们全部支持全文索引。 但他们不是事务安全的,而且不支持外键。如果事务回滚造成不完全回滚,不具有原子性。 如果执原创 2014-12-23 14:08:23 · 210 阅读 · 1 评论 -
MySQL主键与索引的联系和区别
关系数据库依赖于主键,它是数据库物理模式的基石。主键在物理层上只有两个前途: 唯一地标识一行作为一个可以被外键有效引用的对象 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。 下面是主键和索引的一些区别与联系。 1、主键一定是唯一性索引,唯一性索引不一定是主键 所谓主键就是能够唯一标识表总某一行转载 2014-12-23 14:39:54 · 291 阅读 · 0 评论 -
MySQL索引类型一览 让MySQL高效运行起来
而下面几个则不会用到: 索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型。 在数据库表中,对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable表:CREATE TABLE mytable( id int not null, username varchar(16) not null );我们随机向里面插入转载 2014-12-23 16:53:54 · 163 阅读 · 0 评论 -
MySQL replace()函数的使用
replace(object,search,replace) 把object中出现的search全部替换为replace。 例如: 把表table中name地段的aa替换为bb:UPDATE table SET name=REPLACE(name,'aa','bb'); Sql Server中text或ntext字段内容替换 刚开始,UPDATE AA表SET xx字段=RE原创 2014-12-23 11:30:47 · 326 阅读 · 0 评论 -
在命令行导出MySQL数据到Excel
SELEC * FROM tablename into outfile out_directory 如果数据是UTF-8编码,可能生成Excel会乱码,用文本编辑器打开,以ANSI另存即可。原创 2014-12-23 11:17:48 · 334 阅读 · 0 评论 -
一些SQL性能优化的实用经验
1、查询的模糊匹配 尽量避免在一个复杂查询里面实用LIKE '%param1%' 解决办法: 其实只要对该脚本略作改进,查询速度就会提升近百倍。改进方法如下: 修改前台程序。把查询条件的栏目有文本输入改为下拉列表,用户输入模糊关键字时,直接在前台帮忙定位到具体的关键字,这样在调用后台程序时,就可以等于直接关联了。直接修改后台。根据输入条件,先查找出符合条件的关键字,并转载 2014-12-23 13:09:26 · 197 阅读 · 0 评论 -
SQL中的模糊查询
一般模糊语句如下:SELECT 字段 FROM 表 WHERE 某字段 LIKE 条件 其中关于条件,SQL提供了四种匹配模式: 1、% 表示0或多个字符,可以匹配任意类型和长度的字符,有些情况下若是中文,请用两个百分号(%%)表示。比如:SELECT * FROM [user] WHERE u_name LIKE '%三%' 将会把u_name为张三、张猫三、三脚猫、唐三藏等有“三”原创 2014-12-23 13:29:09 · 554 阅读 · 0 评论 -
大型Web应用的数据库设计与部署
随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天百万级甚至上亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。 负载均衡技术 负载均衡集群是由一组相互独立的计算机系统构成,通过常规网络或专用网络进行连接,由路由器衔接在一起,各节点相互协作、共同负载、均衡压力,对客户端来说,整个群集可以视为一台具有超高性能的独转载 2014-12-23 13:38:15 · 553 阅读 · 0 评论 -
《MySQL CAST与CONVERT
MySQL中的CAST()和CONVERT()可用来获取一个类型的值,并产生另一个类型的值。CAST(value as type) CONVERT(value, type) 可以转换的类型是有限的,这些类型可以使下值中的一种: 二进制,同带binary前缀效果:BINARY 字符型,可带参数:CHAR() 日期:DATE 时间:TIME 日期时间:DATETIME 浮点数:DEC原创 2014-12-23 13:45:16 · 209 阅读 · 0 评论 -
MySQL 索引与优化
写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表又10^6条记录,DBMS页面的大小为4K,并且存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有的数据页都不再内存,则需要读取10^4个页面,如果这10^4个页面在磁盘上随机分布,则需要进行10^4次I/O,假设磁盘每次I/O时间为10ms(忽略数据传输转载 2014-12-23 16:17:22 · 224 阅读 · 0 评论 -
MySQL Date,DateTime和Timestamp类型
Datetime类型用于存储同时包含日期和时间的值,MySQL检索并以“YYYY-MM-DD HH:MM:SS”格式显示Datetime值,支持范围是1000-01-01 00:00:00到9999-12-31 23:59:59 Date类型用于存储包含日期的值。MySQL检索并以“YYYY-MM-DD”格式显示DATE值,支持范围是1000-01-01到9999-12-31。原创 2014-12-23 11:10:39 · 266 阅读 · 0 评论 -
MySQL数据表的优化
优化表的数据类型 表需要使用何种数据类型,是需要根据应用来判断的。虽然应用设计的时候需要考虑字段的长度留有一定的冗余,但是不推荐让很多字段都留有大量的冗余,这样即使浪费存储也浪费内存。 我们可以使用PROCEDURE ANALYSE()对当前已有的应用进行表类型的判断,该函数可以对数据表中的数据类型提出优化建议,可以根据应用的实际情况酌情考虑是否实施优化,语法: 输出的每原创 2015-01-01 20:21:19 · 215 阅读 · 0 评论