精华内容
下载资源
问答
  • MySQL处理xml文件

    千次阅读 2018-01-01 11:17:21
    MySQL处理xml文件

    参考资料

    [1]. 13.2.7 LOAD XML Syntax
    https://dev.mysql.com/doc/refman/5.5/en/load-xml.html

    导出xml格式的文件

    mysql --xml -e 'SELECT * FROM mydb.mytable' > file.xml

    读取文件的语法格式

    LOAD XML [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
        [REPLACE | IGNORE]
        INTO TABLE [db_name.]tbl_name
        [CHARACTER SET charset_name]
        [ROWS IDENTIFIED BY '<tagname>']
        [IGNORE number {LINES | ROWS}]
        [(field_name_or_user_var
            [, field_name_or_user_var] ...)]
        [SET col_name={expr | DEFAULT},
            [, col_name={expr | DEFAULT}] ...]

    这个语句支持三种不同的XML格式:

    • 列名称作为属性和列值作为属性值:
    <row column1="value1" column2="value2" .../>
    • 列名称作为标签和列值作为这些标签的内容
    <row>
      <column1>value1</column1>
      <column2>value2</column2>
    </row>
    • 列名称是标签的name属性 ,值是这些标签的内容:
    <row>
      <field name='column1'>value1</field>
      <field name='column2'>value2</field>
    </row>

    在MySQL 5.5.46之前,LOAD XML没有 正确处理表单中的空XML元素。(错误#67542,错误#16171518)

    操作实例

    创建一个空表

    USE test;
    
    CREATE TABLE person (
        person_id INT NOT NULL PRIMARY KEY,
        fname VARCHAR(40) NULL,
        lname VARCHAR(40) NULL,
        created TIMESTAMP
    );

    准备一个简单的XML文件 person.xml

    <list>
      <person person_id="1" fname="Kapek" lname="Sainnouine"/>
      <person person_id="2" fname="Sajon" lname="Rondela"/>
      <person person_id="3"><fname>Likame</fname><lname>Örrtmons</lname></person>
      <person person_id="4"><fname>Slar</fname><lname>Manlanth</lname></person>
      <person><field name="person_id">5</field><field name="fname">Stoma</field>
        <field name="lname">Milu</field></person>
      <person><field name="person_id">6</field><field name="fname">Nirtam</field>
        <field name="lname">Sklöd</field></person>
      <person person_id="7"><fname>Sungam</fname><lname>Dulbåd</lname></person>
      <person person_id="8" fname="Sraref" lname="Encmelt"/>
    </list>

    将数据从person.xml导入到person表

    # 使用关键字LOCAL,文件存储在本地的模式
    LOAD XML LOCAL INFILE '/root/person.xml'
    INTO TABLE person
    ROWS IDENTIFIED BY '<person>';
    
    # 不使用关键字LOCAL,查看数据存储地址,并将文件放入,即文件存放在数据库的存储文件夹
    show variables like '%datadir%';
    LOAD XML INFILE 'person.xml'
    INTO TABLE person
    ROWS IDENTIFIED BY '<person>';

    创建另外一个空表

    CREATE TABLE individual (
    individual_id INT NOT NULL PRIMARY KEY,
    name1 VARCHAR(40) NULL,
    name2 VARCHAR(40) NULL,
    made TIMESTAMP
    );

    将数据导入

    因为字段不一样,所以需要使用set指定对应的字段

    LOAD XML INFILE '../bin/person-dump.xml'
    INTO TABLE test.individual (@person_id, @fname, @lname, @created)
    SET individual_id=@person_id, name1=@fname, name2=@lname, made=@created;
    展开全文
  • mysql 处理空格数据

    千次阅读 2018-07-25 11:19:23
    mysql中有处理空格的函数,做个简单介绍: 1.TRIM()函数 这个函数的用法很简单,但是无法去除中间的空格 -- 去除左右空格 SELECT TRIM(' fd fd '); SELECT TRIM(BOTH' ' FROM ' fd fd '); -- 去除左边的空格 ...

    mysql中有处理空格的函数,做个简单介绍:
    1.TRIM()函数
    这个函数的用法很简单,但是无法去除中间的空格

    -- 去除左右空格
    SELECT TRIM('  fd fd ');
    SELECT TRIM(BOTH' ' FROM '  fd fd ');
    -- 去除左边的空格
    SELECT TRIM(LEADING' 'FROM'  fd fd ');
    -- 去除右边的空格
    SELECT TRIM(TRAILING' 'FROM '  fd fd ');

    2.REPLACE()函数
    REPLACE(str,from_str,to_str),str是我们要处理的字符串,from_str是被替换的东西,to_str是替换的东西 。

    比如,我们把下面的字符串中的所有’a’替换为’啦’:

    SELECT REPLACE('aae234adfdsf','a','啦')

    替换结果为:

    啦啦e234啦dfdsf

    这个替换,是不用考虑位置的,不管在左边右边还是在中间;既然可以替换字母,那替换空格也是可以的。

    示例:

    SELECT REPLACE('  ac  d df ',' ','')

    结果:

    acddf

    如果要把某张表的某个字段中的空格全部去掉,比如去掉这张表中name字段的空格,可以:

    UPDATE student set name = REPLACE(name,' ','') where id = 149
    或者
    UPDATE student set name = REPLACE(name,' ','') 
    展开全文
  • mysql处理查询僵死的进程

    千次阅读 2014-08-30 16:45:53
    mysql处理查询僵死的进程 1、查出进程列表 mysqladmin -uusername -ppassword -hlocalhost processlist 2、杀死进程 mysqladmin -uusername -ppassword -hlocalhost kill pid(进程id)
    mysql处理查询僵死的进程
    1、查出进程列表
    mysqladmin -uusername -ppassword -hlocalhost processlist
    2、杀死进程
    mysqladmin -uusername -ppassword -hlocalhost kill pid(进程id)
    展开全文
  • Mysql处理海量数据架构优化

    千次阅读 2012-05-26 23:38:54
    Mysql处理海量数据的优化可以从一下四个方面入手。 业务优化: 业务分流,Sql语句优化 架构优化: 分表分库,读写分离,数据缓存 硬件优化: 硬件配置 数据库优化: 引擎选择,逻辑改造,...

    前言

    Mysql处理海量数据的优化可以从一下四个方面入手。

    业务优化: 业务分流,Sql语句优化
    架构优化: 分表分库,读写分离,数据缓存
    硬件优化: 硬件配置
    数据库优化: 引擎选择,逻辑改造,索引

    上面每一个块都有很多内容,目前也有很多成熟的解决方案。

    本篇文章主要从架构层面讲解Mysql处理海量数据。也是比较基本的内容,偏向理论。

    适用数据级别:百万级

    Mysql处理海量数据架构优化三大方法:分表分库,读写分离,数据缓存

    一,分表分库

    概念:分表分库就是根据某些条件把大数据分割成多个块,把每个块存放在不同的数据库(数据表中)。该方法是提高性能的最有效的方法。

    1,根据业务拆分(垂直拆分)

    模拟情景:做一个系统,该系统包括 资讯,博客,论坛

    那么可以这样分库。

      1

    问题:后来论坛数据猛增,访问压力开始变大。

    解决:把存放论坛数据的数据库进行分库。

      2

    问题:后来论坛帖子数量继续增长。访问吃力

    解决:继续将存放帖子的数据库进行拆分。

    2,水平拆分

    把帖子数据拆分成12个数据库,把每3个数据存放到一台数据库服务器中。

     4  

    问题:单个数据库db1中单表数据量过大。

    解决:db1中进行分表。

    5

    概念:

    垂直拆分:垂直才分也叫行拆分(Row Splitting),就是把组成一行的多个列分开放到不同的数据库(数据表)中,这些表具有不同的结构。垂直分表就是“业务拆分”。

    水平拆分:水平拆分就是把一个表分成多个表,每个表的结构一样,但是储存的数据不一样。

    二,读写分离

    看看上面的例子中最后的结果。

    6

    下面对存放帖子的数据库服务器Server2_1_1进行读写分离。

    7

    Mysql的读写分离是通过Mysql代理实现的,Mysql代理是介于Mysql客户端和Mysql服务器之间的简单程序,用来分析或者传输他们之间的通讯,最大的优点就是:读写分离。

    三,数据缓存

    到现在论坛已经可以很好地支持海量数据的存储了。但是我们发现系统的资讯模块有访问吃力。我们在资讯模块添加缓存服务器。

    8

    访客首先访问缓存服务器,因为缓存服务器的数据都是在内存当中所以速度会很快,如果缓存中找不到数据再去Server1中查找数据,并且把数据缓存到缓存服务器中。

    总结:

    该文章是本人对Mysql数据库在处理海量数据时的架构思路。本人觉得在处理百万级量的数据,上述的架构绰绰有余,够用了。在大的数据量,千万级,十亿级,很多大的公司都有很好的解决方案。参考一下

    展开全文
  • mysql处理高并发的方式比较多,以下为比较简单的一种(mysql事物控制)beginTranse();try{$result = $dbca-&gt;query('select amount from s_store where postID = 12345');if(result-&gt;amount &gt; 0){...
  • 个人记录:2018年,工作的第6到7个年头。重点研究自己不太擅长的技术:分布式...--------------------------------------面试问题,mysql处理什么数量级的数据时,性能会急剧下降。。。。当时脱口而出。。几百万。。...
  • mysql处理字符串的两个绝招:substring_index,concat
  • MySql处理Unicode字符串

    万次阅读 2018-03-13 21:50:18
    默认的情况下,MySql也不支持Unicode字符处理(可以自己设置)。所以可以在一开始让数据库支持Unicode(数据库的表在最后) ALTER DATABASE scraping CHARACTER SET = utf8mb4_unicode_ci; ALTER TABLE pages CONVERT...
  • 今天王总又给我们上了一课,其实MySQL处理高并发,防止库存超卖的问题,在去年的时候,王总已经提过;但是很可惜,即使当时大家都听懂了,但是在现实开发中,还是没这方面的意识。今天就我的一些理解,整理一下这个...
  • mysql处理高并发

    千次阅读 2018-08-01 10:23:42
    一般高并发场景会设计多这个字段`version` bigint(19) DEFAULT NULL COMMENT '版本号,高并发,乐观锁的解决方案', 首先,多用户并发修改同一条记录时,肯定是后提交的用户将覆盖掉前者提交的结果了。...
  • MySQL 处理非法数据

    千次阅读 2014-07-19 14:36:32
    默认情况下,MySQL按照以下规则处理“数据越界”和其他非正常数据 1、对于数值数据或time数据列,超出合法范围的值将被阶段到最近的取值范围边界; 2、对于字符串数据列(不包括enum、set)太长的字符串将被截断...
  • mysql处理高并发,防止库存超卖

    千次阅读 2014-03-04 23:06:27
    今天王总又给我们上了一课,其实mysql处理高并发,防止库存超卖的问题,在去年的时候,王总已经提过;但是很可惜,即使当时大家都听懂了,但是在现实开发中,还是没这方面的意识。今天就我的一些理解,整理一下这个...
  • mysql处理高并发数据,防止数据超读

    千次阅读 2015-08-05 21:59:30
    今天王总又给我们上了一课,其实mysql处理高并发,防止库存超卖的问题,在去年的时候,王总已经提过;但是很可惜,即使当时大家都听懂了,但是在现实开发中,还是没这方面的意识。今天就我的一些理解,整理一下这个...
  • MySQL处理时间差问题

    千次阅读 2018-10-23 18:34:18
    处理时间问题的函数很多,下面举例简单说几个常用的: SELECT TIMESTAMPDIFF(YEAR,'2003-02-01','2005-05-01') AS 时间差(年); SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01') AS 时间差(月); SELECT...
  • Mysql 处理回车换行符

    千次阅读 2018-07-24 15:28:57
    今天遇到一个需求,要从Mysql中查询一部分数据,然后将数据导出为.txt。直接在linux执行命令, mysql -uusername -ppwd -hip -D database -N -e "select jobid , ctmid,coid,cjobname,replace(replace(cjobinfo...
  • MySQL处理高并发,防止库存超卖的问题,在去年的时候,王总已经提过;但是很可惜,即使当时大家都听懂了,但是在现实开发中,还是没这方面的意识。今天就我的一些理解,整理一下这个问题,并希望以后这样的课程能...
  • mysql处理某个唯一索引时存在则更新,不存在则插入的情况应该是很常见的,网上也有很多类似的文章,我今天就讲讲当这个唯一的索引是多列唯一索引时可能会遇到的问题和方法。 方法一: 使用 INSERT INTO ON ... ...
  • Java mysql 处理特殊字符% _

    千次阅读 2019-05-24 10:35:44
    上面的这些事mysql语句的处理,可是如果我们在Java代码中,如何将传入的参数处理成上面的形式呢? 比如我们需要查询name like "我是%强" 这样的形式:即Mybatis类似这样"我是%强"需要作为参数name传入: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 76,810
精华内容 30,724
关键字:

mysql处理

mysql 订阅