<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sentido Web &#187; MYSQL</title>
	<atom:link href="http://sentidoweb.com/tag/mysql/feed" rel="self" type="application/rss+xml" />
	<link>http://sentidoweb.com</link>
	<description>Desarrollo web, HTML, CSS, Javascript, PHP, MySQL</description>
	<lastBuildDate>Tue, 10 Apr 2012 01:02:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Hacer un split en MySQL</title>
		<link>http://sentidoweb.com/2011/04/05/hacer-un-split-en-mysql.php</link>
		<comments>http://sentidoweb.com/2011/04/05/hacer-un-split-en-mysql.php#comments</comments>
		<pubDate>Tue, 05 Apr 2011 11:35:20 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[split]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/?p=2711</guid>
		<description><![CDATA[Normalmente no se suelen necesitar hacer splits en MySQL, porque un buen diseño de la BD debería almacenar los campos en distintas columnas, y si no se puede realizar así, se suele guardar la información serializada en PHP o en formato JSON o XML. Pero no siempre son las cosas como queremos y alguna vez [...]]]></description>
			<content:encoded><![CDATA[<p>Normalmente no se suelen necesitar hacer splits en MySQL, porque un buen diseño de la BD debería almacenar los campos en distintas columnas, y si no se puede realizar así, se suele guardar la información serializada en PHP o en formato JSON o XML. Pero no siempre son las cosas como queremos y alguna vez nos podemos encontrar con la necesidad de hacer un split de un campo en MySQL (como me ha pasado a mi ahora).</p>
<p>Hacerlo es fácil, solo es necesario hacer dos substrings, por cada campo:</p>
<pre><code><pre class="sql"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #ff0000;">`ip`</span> ,
SUBSTRING_INDEX<span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">`ip`</span> , <span style="color: #ff0000;">'.'</span>, <span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> a,
SUBSTRING_INDEX<span style="color: #66cc66;">&#40;</span>SUBSTRING_INDEX<span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">`ip`</span> , <span style="color: #ff0000;">'.'</span>, <span style="color: #cc66cc;">2</span> <span style="color: #66cc66;">&#41;</span>,<span style="color: #ff0000;">'.'</span>,-<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> b,
SUBSTRING_INDEX<span style="color: #66cc66;">&#40;</span>SUBSTRING_INDEX<span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">`ip`</span> , <span style="color: #ff0000;">'.'</span>, -<span style="color: #cc66cc;">2</span> <span style="color: #66cc66;">&#41;</span>,<span style="color: #ff0000;">'.'</span>,<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> c,
SUBSTRING_INDEX<span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">`ip`</span> , <span style="color: #ff0000;">'.'</span>, -<span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> d
<span style="color: #993333; font-weight: bold;">FROM</span> log_table</pre></code></pre>
<p><a href="http://dev.mysql.com/doc/refman/5.1/en/string-functions.html">MySQL String Functions</a></p>]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2011/04/05/hacer-un-split-en-mysql.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>INSERT IGNORE en MySQL</title>
		<link>http://sentidoweb.com/2010/03/12/insert-ignore-en-mysql.php</link>
		<comments>http://sentidoweb.com/2010/03/12/insert-ignore-en-mysql.php#comments</comments>
		<pubDate>Fri, 12 Mar 2010 09:01:08 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[Quicklinks]]></category>
		<category><![CDATA[ignore]]></category>
		<category><![CDATA[insert]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/?p=2222</guid>
		<description><![CDATA[Muchas veces realizamos inserts y nuestras comprobaciones son erróneas e intentamos insertar registros duplicados, dándonos un error gordo en MySQL. Para evitar esto, normalmente se usa un REPLACE cuando la situación permite reemplazar los valores nuevos por los actuales, pero cuando esto no es posible, nos tenemos que pegar con el código buscando la comprobación [...]]]></description>
			<content:encoded><![CDATA[<p>Muchas veces realizamos inserts y nuestras comprobaciones son erróneas e intentamos insertar registros duplicados, dándonos un error gordo en MySQL. Para evitar esto, normalmente se usa un REPLACE cuando la situación permite reemplazar los valores nuevos por los actuales, pero cuando esto no es posible, nos tenemos que pegar con el código buscando la comprobación que no hacemos correctamente. Para evitar esto: insertar algo ya existente, MySQL ofrece la posibilidad de ignorar el insert cuando no se puede insertar:</p>
<pre><code><pre class="sql"><span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">IGNORE</span> 
  <span style="color: #993333; font-weight: bold;">INTO</span> tabla 
    <span style="color: #66cc66;">&#40;</span>id, valor, ...<span style="color: #66cc66;">&#41;</span> 
  <span style="color: #993333; font-weight: bold;">VALUES</span> 
    <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">25</span>, <span style="color: #ff0000;">'valor, ...) </span></pre></code></pre>
<p>Cada día aprendo algo nuevo, aunque a veces deberían darme con la Biblia de MySQL (775 páginas) en la cabeza por no conocer antes esto.</p>]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2010/03/12/insert-ignore-en-mysql.php/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>BigDump: facilita recuperar dumps de MySQL grandes</title>
		<link>http://sentidoweb.com/2010/02/05/bigdump-facilita-recuperar-dumps-de-mysql-grandes.php</link>
		<comments>http://sentidoweb.com/2010/02/05/bigdump-facilita-recuperar-dumps-de-mysql-grandes.php#comments</comments>
		<pubDate>Fri, 05 Feb 2010 17:03:13 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[Quicklinks]]></category>
		<category><![CDATA[bachup]]></category>
		<category><![CDATA[dump]]></category>
		<category><![CDATA[restore]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/?p=2168</guid>
		<description><![CDATA[A veces es un lío enorme recuperar BDs obtenidos de dumps cuando el fichero es enorme, sobre todo si usamos phpMyAdmin (y no tenemos acceso a él). Por ello este script nos puede venir muy bien para recuperar backups anteriores, ya que recupera de poco en poco y se auto-reinicia él mismo. BigDump]]></description>
			<content:encoded><![CDATA[<p>A veces es un lío enorme recuperar BDs obtenidos de dumps cuando el fichero es enorme, sobre todo si usamos phpMyAdmin (y no tenemos acceso a él). Por ello este script nos puede venir muy bien para recuperar backups anteriores, ya que recupera de poco en poco y se auto-reinicia él mismo.</p>
<p><a href="http://www.ozerov.de/bigdump.php">BigDump</a></p>]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2010/02/05/bigdump-facilita-recuperar-dumps-de-mysql-grandes.php/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Lessn: script para acortar URLs</title>
		<link>http://sentidoweb.com/2009/08/24/lessn-script-para-acortar-urls.php</link>
		<comments>http://sentidoweb.com/2009/08/24/lessn-script-para-acortar-urls.php#comments</comments>
		<pubDate>Mon, 24 Aug 2009 22:00:00 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[acortador urls]]></category>
		<category><![CDATA[MYSQL]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/2009/08/24/lessn-script-para-acortar-urls.php</guid>
		<description><![CDATA[Lessn es un script en PHP5 y MySQL que permite realizar un acortador de URLs al estilo micurl o parecidos. Lessn Vía / Script &#38; Style]]></description>
			<content:encoded><![CDATA[<strong>Lessn</strong> es un script en PHP5 y MySQL que permite realizar un acortador de URLs al estilo <a href="http://micurl.com">micurl</a> o parecidos.
<a href="http://www.shauninman.com/archive/2009/08/17/less_n">Lessn</a>
Vía / <a href="http://scriptandstyle.com/submissions/lessn">Script &amp; Style</a>
]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2009/08/24/lessn-script-para-acortar-urls.php/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Guía de escalamiento y replicación en MySQL</title>
		<link>http://sentidoweb.com/2009/08/10/guia-de-escalamiento-y-replicacion-en-mysql.php</link>
		<comments>http://sentidoweb.com/2009/08/10/guia-de-escalamiento-y-replicacion-en-mysql.php#comments</comments>
		<pubDate>Mon, 10 Aug 2009 17:15:00 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[cluster]]></category>
		<category><![CDATA[escalamiento]]></category>
		<category><![CDATA[replicación]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/2009/08/10/guia-de-escalamiento-y-replicacion-en-mysql.php</guid>
		<description><![CDATA[La gente de Sun ha publicado una guía muy interesante sobre escalamiento y replicación para MySQL. Se trata de un PDF que nos explica qué es el escalamiento, la replicación en MySQL, los tipos de escalamiento, el Linux Heartbeat y los cluster, entre otras cosas. Guía: Escalamiento de MySQL para negocios de alto crecimiento Gracias [...]]]></description>
			<content:encoded><![CDATA[La gente de Sun ha publicado una guía muy interesante sobre escalamiento y replicación para MySQL. Se trata de un <a href="http://mx.sun.com/offers/docs/MySQL_Scale_ESP.pdf">PDF</a> que nos explica qué es el escalamiento, la replicación en MySQL, los tipos de escalamiento, el Linux Heartbeat y los cluster, entre otras cosas.
<a href="http://www.espaciolinux.com/2009/08/guia-escalamiento-mysql-para-negocios-alto-crecimiento/">Guía: Escalamiento de MySQL para negocios de alto crecimiento</a>
Gracias <a href="http://dmnet.bitacoras.com">David</a> por el aviso
]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2009/08/10/guia-de-escalamiento-y-replicacion-en-mysql.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>phpMyBackupPro: realiza backups de MySQL</title>
		<link>http://sentidoweb.com/2009/08/04/phpmybackuppro-realiza-backups-de-mysql.php</link>
		<comments>http://sentidoweb.com/2009/08/04/phpmybackuppro-realiza-backups-de-mysql.php#comments</comments>
		<pubDate>Wed, 05 Aug 2009 01:00:00 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[backups]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/2009/08/04/phpmybackuppro-realiza-backups-de-mysql.php</guid>
		<description><![CDATA[phpMyBackupPro es un sistema que nos permite controlar las backups de nuestra BD MySQL de forma sencilla. Entre las características que ofrece nos encontramos con: Backups de una o varias BD con datos, sin datos, estrutura de las tablas, &#8230; Tres tipos de comprensión: sin comprensión, gzip o zip Backups programables Administración de backups que [...]]]></description>
			<content:encoded><![CDATA[<p><strong>phpMyBackupPro</strong> es un sistema que nos permite controlar las backups de nuestra BD MySQL de forma sencilla.</p>
<p>Entre las características que ofrece nos encontramos con:</p>
<ul><li>Backups de una o varias BD con datos, sin datos, estrutura de las tablas, &#8230;</li>
<li>Tres tipos de comprensión: sin comprensión, gzip o zip</li>
<li>Backups programables</li>
<li>Administración de backups que permite verlas, recuperarlas, descargarlas o borrarlas</li>
<li>Backup en servidor FTP o envío por email</li>
<li>Modo shell</li></ul>
<p><a href="http://www.phpmybackuppro.net/">phpMyBackupPro</a></p>
<p>Vía / <a href="http://www.weblenium.com/2009/07/phpmybackuppro-automated-mysql-backups/">Weblenium</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2009/08/04/phpmybackuppro-realiza-backups-de-mysql.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mostrar el tiempo transcurrido con MySQL</title>
		<link>http://sentidoweb.com/2009/06/10/mostrar-el-tiempo-transcurrido-con-mysql.php</link>
		<comments>http://sentidoweb.com/2009/06/10/mostrar-el-tiempo-transcurrido-con-mysql.php#comments</comments>
		<pubDate>Wed, 10 Jun 2009 20:00:00 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[fechas]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/2009/06/10/mostrar-el-tiempo-transcurrido-con-mysql.php</guid>
		<description><![CDATA[Algo muy común a la hora de realizar una aplicación web es indicar las fechas según el tiempo transcurrido, en vez de poner 2009-06-03 poner &#8220;hace 7 días&#8221;. Para aquellos que necesiten mostrar las fechas de esta forma usando MySQL es posible hacerlo usando una función: DELIMITER // CREATE FUNCTION TimeDiffUnits &#40;old DATETIME, new DATETIME&#41; [...]]]></description>
			<content:encoded><![CDATA[<p>Algo muy común a la hora de realizar una aplicación web es indicar las fechas según el tiempo transcurrido, en vez de poner 2009-06-03 poner &#8220;hace 7 días&#8221;.</p>
<p>Para aquellos que necesiten mostrar las fechas de esta forma usando MySQL es posible hacerlo usando una función:</p>
<pre><code><pre class="sql">DELIMITER //
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">FUNCTION</span> TimeDiffUnits <span style="color: #66cc66;">&#40;</span>old DATETIME, new DATETIME<span style="color: #66cc66;">&#41;</span> RETURNS CHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">50</span><span style="color: #66cc66;">&#41;</span> DETERMINISTIC NO SQL
BEGIN
DECLARE diff INTEGER;
<span style="color: #993333; font-weight: bold;">SET</span> diff = UNIX_TIMESTAMP<span style="color: #66cc66;">&#40;</span>new<span style="color: #66cc66;">&#41;</span> - UNIX_TIMESTAMP<span style="color: #66cc66;">&#40;</span>old<span style="color: #66cc66;">&#41;</span>;
CASE
WHEN <span style="color: #66cc66;">&#40;</span>diff &lt; <span style="color: #cc66cc;">3600</span><span style="color: #66cc66;">&#41;</span> THEN
<span style="color: #993333; font-weight: bold;">RETURN</span> CONCAT<span style="color: #66cc66;">&#40;</span>FLOOR<span style="color: #66cc66;">&#40;</span>diff / <span style="color: #cc66cc;">60</span><span style="color: #66cc66;">&#41;</span> , <span style="color: #ff0000;">' Minutes'</span><span style="color: #66cc66;">&#41;</span>;
WHEN <span style="color: #66cc66;">&#40;</span>diff &lt; <span style="color: #cc66cc;">86400</span><span style="color: #66cc66;">&#41;</span> THEN
<span style="color: #993333; font-weight: bold;">RETURN</span> CONCAT<span style="color: #66cc66;">&#40;</span>FLOOR<span style="color: #66cc66;">&#40;</span>diff / <span style="color: #cc66cc;">3600</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #ff0000;">' Hours'</span><span style="color: #66cc66;">&#41;</span>;
WHEN <span style="color: #66cc66;">&#40;</span>diff &lt; <span style="color: #cc66cc;">604800</span><span style="color: #66cc66;">&#41;</span> THEN
<span style="color: #993333; font-weight: bold;">RETURN</span> CONCAT<span style="color: #66cc66;">&#40;</span>FLOOR<span style="color: #66cc66;">&#40;</span>diff / <span style="color: #cc66cc;">86400</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #ff0000;">' Days'</span><span style="color: #66cc66;">&#41;</span>;
WHEN <span style="color: #66cc66;">&#40;</span>diff &lt; <span style="color: #cc66cc;">2592000</span><span style="color: #66cc66;">&#41;</span> THEN
<span style="color: #993333; font-weight: bold;">RETURN</span> CONCAT<span style="color: #66cc66;">&#40;</span>FLOOR<span style="color: #66cc66;">&#40;</span>diff / <span style="color: #cc66cc;">604800</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #ff0000;">' Weeks'</span><span style="color: #66cc66;">&#41;</span>;
WHEN <span style="color: #66cc66;">&#40;</span>diff &lt; <span style="color: #cc66cc;">31536000</span><span style="color: #66cc66;">&#41;</span> THEN
<span style="color: #993333; font-weight: bold;">RETURN</span> CONCAT<span style="color: #66cc66;">&#40;</span>FLOOR<span style="color: #66cc66;">&#40;</span>diff / <span style="color: #cc66cc;">2592000</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #ff0000;">' Months'</span><span style="color: #66cc66;">&#41;</span>;
ELSE
<span style="color: #993333; font-weight: bold;">RETURN</span> CONCAT<span style="color: #66cc66;">&#40;</span>FLOOR<span style="color: #66cc66;">&#40;</span>diff / <span style="color: #cc66cc;">31536000</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #ff0000;">' Years'</span><span style="color: #66cc66;">&#41;</span>;
END CASE;
END //
DELIMITER ;</pre></code></pre>
<p><strong>Importante</strong>: no uséis jamás está función ni en el WHERE ni en el ORDER BY ni en el GROUP BY, ya que se ejecutaría para cada registro de las tablas.</p>
<p><a href="http://www.mikehillyer.com/mysql/user-friendly-age-function-for-mysql/">User Friendly Age Function for MySQL</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2009/06/10/mostrar-el-tiempo-transcurrido-con-mysql.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL 5.4</title>
		<link>http://sentidoweb.com/2009/04/23/mysql-5-4.php</link>
		<comments>http://sentidoweb.com/2009/04/23/mysql-5-4.php#comments</comments>
		<pubDate>Thu, 23 Apr 2009 23:40:00 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[MYSQL]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/2009/04/23/mysql-5-4.php</guid>
		<description><![CDATA[Sun (o quizás Oracle) ha anunciado la salida de MySQL 5.4, la cual ya está disponible una preview para su descarga. Entre las novedades que ofrece encontramos: Mejoras en escalabilidad Optimización de subqueries Nuevos algoritmos para sentencias Mejoras en los procedimientos almacenados Mejoras en el Information Schema Sun Announces MySQL 5.4: Up To 90% Faster [...]]]></description>
			<content:encoded><![CDATA[<p>Sun (o quizás Oracle) ha anunciado la salida de MySQL 5.4, la cual ya está disponible una preview para su descarga. Entre las novedades que ofrece encontramos:</p>
<ul><li>Mejoras en escalabilidad</li>
<li>Optimización de subqueries</li>
<li>Nuevos algoritmos para sentencias</li>
<li>Mejoras en los procedimientos almacenados</li>
<li>Mejoras en el Information Schema</li></ul>
<p><a href="http://www.mysql.com/news-and-events/generate-article.php?id=1602">Sun Announces MySQL 5.4: Up To 90% Faster Response Times, and Scalability Up to 16-way x86 Servers and 64-way CMT Servers </a></p>
]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2009/04/23/mysql-5-4.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>5 consejos para optimizar sentencias en MySQL</title>
		<link>http://sentidoweb.com/2009/04/07/5-consejos-para-optimizar-sentencias-en-mysql.php</link>
		<comments>http://sentidoweb.com/2009/04/07/5-consejos-para-optimizar-sentencias-en-mysql.php#comments</comments>
		<pubDate>Tue, 07 Apr 2009 19:15:00 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[optimizacion]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/2009/04/07/5-consejos-para-optimizar-sentencias-en-mysql.php</guid>
		<description><![CDATA[Interesantes consejos a tener en cuenta cuando realizamos nuestras aplicaciones usando MySQL: Optimización de tipos: intenta evitar el uso de NULLs ya que requieren más operaciones internas en MySQL. Usa el tamaño correcto para las variables, por ejemplo, si vas a usar un número pequeño no uses INT. Cuidado con la codificación de caracteres: inserta [...]]]></description>
			<content:encoded><![CDATA[<p>Interesantes consejos a tener en cuenta cuando realizamos nuestras aplicaciones usando MySQL:</p>
<ul><li><strong>Optimización de tipos</strong>: intenta evitar el uso de NULLs ya que requieren más operaciones internas en MySQL. Usa el tamaño correcto para las variables, por ejemplo, si vas a usar un número pequeño no uses INT.</li>
<li><strong>Cuidado con la codificación de caracteres</strong>: inserta los datos siempre en la misma codificación, si tienes orígenes con diferentes codificaciones modificalo antes de insertar.</li>
<li><strong>Optimización de COUNT</strong>: COUNT(*) sin un WHERE no necesita acceder a la tabla para obtener los resultados, al igual sin en vez de asterisco usamos un campo de la tabla que no tenga valores NULL. En el caso de que haya WHERE, poco se puede hacer para optimizar la consulta salvo usar índices correctamente.</li>
<li><strong>Optimización de subqueries</strong>: MySQL no optimiza muy bien las subqueries por lo que es preferibles pasarlas a una JOIN. Incluso realizar dividir en dos queries independientes puede ser una buena alternativa.</li>
<li><strong>Optimización de UNION</strong>: UNION devuelve la unión de los datos de dos tablas que no se hayan en la otra, por lo que realizan un UNIQUE y una ordenación. Usa UNION ALL si estás seguro de que las distintas consultas no tienen datos repetidos (o no te importa que esté repetidos).</li></ul>
<p><a href="http://www.databasejournal.com/features/mysql/article.php/3813821/Five-Query-Optimizations-in-MySQL.htm">Five Query Optimizations in MySQL</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2009/04/07/5-consejos-para-optimizar-sentencias-en-mysql.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>openark kit: utilidades DBA para MySQL</title>
		<link>http://sentidoweb.com/2009/02/25/openark-kit-utilidades-dba-para-mysql.php</link>
		<comments>http://sentidoweb.com/2009/02/25/openark-kit-utilidades-dba-para-mysql.php#comments</comments>
		<pubDate>Thu, 26 Feb 2009 02:15:00 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[dba]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/2009/02/25/openark-kit-utilidades-dba-para-mysql.php</guid>
		<description><![CDATA[openark kit es una serie de scripts en Python que nos facilitará las tareas de DBA (sobre todo para aquellos que no es nuestro fuerte). Consta de las siguientes aplicaciones: oak-apply-ri: aplica integridad referencial en dos columnas con relacion padre-hijo. oak-block-account: bloquea cuentas de usuarios, o los habilita y deshabilita para logarse.. oak-kill-slow-queries: finaliza queries [...]]]></description>
			<content:encoded><![CDATA[<p><strong>openark kit</strong> es una serie de scripts en Python que nos facilitará las tareas de DBA (sobre todo para aquellos que no es nuestro fuerte). Consta de las siguientes aplicaciones:</p>
<ul>
<li><a title="oak-apply-ri" href="openark-kit/oak-apply-ri">oak-apply-ri</a>: aplica integridad referencial en dos columnas con relacion padre-hijo.</li>
<li><a title="oak-block-account" href="openark-kit/oak-block-account">oak-block-account</a>: bloquea cuentas de usuarios, o los habilita y deshabilita para logarse..</li>
<li><a title="oak-kill-slow-queries" href="openark-kit/oak-kill-slow-queries">oak-kill-slow-queries</a>: finaliza queries que duren mucho tiempo. Imprescindible.</li>
<li><a title="oak-modify-charset" href="openark-kit/oak-modify-charset">oak-modify-charset</a>: cambia el characterset y collation de una columna de texto.</li>
<li><a title="oak-purge-master-logs" href="openark-kit/oak-purge-master-logs">oak-purge-master-logs</a>: purga logs del maestro, dependiendo del estado de replicación de los esclavos.</li>
<li><a title="oak-security-audit" href="openark-kit/oak-security-audit">oak-security-audit</a>: audita cuentas, contraseñas, privilegios y otros aspectos de seguridad.</li>
<li><a title="oak-show-limits" href="openark-kit/oak-show-limits">oak-show-limits</a>: muestra el &#8220;espacio libre&#8221; de AUTO_INCREMENT.</li>
<li><a title="oak-show-replication-status" href="openark-kit/oak-show-replication-status">oak-show-replication-status</a>: muestra la diferencia de replicación entre maestro y esclavo.</li>
</ul>
<p><a href="http://code.openark.org/forge/openark-kit">openark kit</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2009/02/25/openark-kit-utilidades-dba-para-mysql.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

