{"id":4503,"date":"2026-04-28T10:30:00","date_gmt":"2026-04-28T08:30:00","guid":{"rendered":"https:\/\/blog.sutilweb.eu\/?p=4503"},"modified":"2026-04-16T09:14:55","modified_gmt":"2026-04-16T07:14:55","slug":"cotejamientos-en-mysql-guia-completa-para-optimizar-tus-bases-de-datos","status":"publish","type":"post","link":"https:\/\/sutilweb.eu\/index.php\/2026\/04\/28\/cotejamientos-en-mysql-guia-completa-para-optimizar-tus-bases-de-datos\/","title":{"rendered":"Cotejamientos en MySQL: gu\u00eda completa para optimizar tus bases de datos"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Introducci\u00f3n<\/h3>\n\n\n\n<p>Los <strong>cotejamientos en MySQL<\/strong> son un aspecto clave a la hora de trabajar con bases de datos, especialmente si desarrollas proyectos web con PHP o frameworks modernos. Aunque muchas veces se pasan por alto, los <strong>cotejamientos (collations)<\/strong> determinan c\u00f3mo se comparan, ordenan y buscan los datos de tipo texto dentro de una base de datos.<\/p>\n\n\n\n<p>En este art\u00edculo de <strong>Sutil Web<\/strong>, descubrir\u00e1s qu\u00e9 son los cotejamientos en <strong>MySQL<\/strong>, c\u00f3mo funcionan, qu\u00e9 tipos existen y c\u00f3mo elegir el m\u00e1s adecuado para tus proyectos web.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 son los cotejamientos en MySQL?<\/h2>\n\n\n\n<p>Los <strong>cotejamientos en MySQL<\/strong> son reglas que definen c\u00f3mo se comparan los caracteres dentro de un conjunto de caracteres (<strong>charset<\/strong>). Es decir, determinan:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Si las comparaciones distinguen entre may\u00fasculas y min\u00fasculas<\/li>\n\n\n\n<li>C\u00f3mo se ordenan los textos (ORDER BY)<\/li>\n\n\n\n<li>C\u00f3mo se realizan b\u00fasquedas (LIKE, =, etc.)<\/li>\n<\/ul>\n\n\n\n<p>Por ejemplo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>utf8_general_ci<\/code> \u2192 No distingue entre may\u00fasculas y min\u00fasculas (case insensitive)<\/li>\n\n\n\n<li><code>utf8_bin<\/code> \u2192 S\u00ed distingue entre may\u00fasculas y min\u00fasculas (case sensitive)<\/li>\n<\/ul>\n\n\n\n<p><strong>Ejm<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT 'Hola' = 'hola';<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Con <code>utf8_general_ci<\/code> \u2192 resultado: TRUE<\/li>\n\n\n\n<li>Con <code>utf8_bin<\/code> \u2192 resultado: FALSE<\/li>\n<\/ul>\n\n\n\n<p>Esto puede afectar directamente al comportamiento de tu aplicaci\u00f3n web.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Tipos de cotejamientos en MySQL<\/h2>\n\n\n\n<p>En <strong>MySQL<\/strong> existen m\u00faltiples tipos de cotejamientos, pero los m\u00e1s utilizados son:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Cotejamientos Case Insensitive (ci)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ejemplo: <code>utf8mb4_general_ci<\/code><\/li>\n\n\n\n<li>No distingue entre may\u00fasculas y min\u00fasculas<\/li>\n\n\n\n<li>Ideal para b\u00fasquedas de usuario<\/li>\n<\/ul>\n\n\n\n<p><strong>Ejm<\/strong><br>\u00abweb\u00bb = \u00abWEB\u00bb \u2192 TRUE<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Cotejamientos Case Sensitive (cs o bin)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ejemplo: <code>utf8mb4_bin<\/code><\/li>\n\n\n\n<li>Distingue entre may\u00fasculas y min\u00fasculas<\/li>\n\n\n\n<li>M\u00e1s estricto<\/li>\n<\/ul>\n\n\n\n<p><strong>Ejm<\/strong><br>\u00abweb\u00bb \u2260 \u00abWEB\u00bb<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Cotejamientos Unicode<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ejemplo: <code>utf8mb4_unicode_ci<\/code><\/li>\n\n\n\n<li>Mejor soporte para idiomas y caracteres especiales<\/li>\n\n\n\n<li>Recomendado para aplicaciones internacionales<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">4. Cotejamientos espec\u00edficos por idioma<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ejemplo: <code>utf8mb4_spanish_ci<\/code><\/li>\n\n\n\n<li>Adaptados a reglas ling\u00fc\u00edsticas concretas<\/li>\n<\/ul>\n\n\n\n<p><strong>Ejm<\/strong><br>Orden correcto de \u00ab\u00f1\u00bb en espa\u00f1ol<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Diferencia entre charset y collation<\/h2>\n\n\n\n<p>Es muy com\u00fan confundir estos dos conceptos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Charset (conjunto de caracteres)<\/strong> \u2192 Define qu\u00e9 caracteres se pueden almacenar<\/li>\n\n\n\n<li><strong>Collation (cotejamiento)<\/strong> \u2192 Define c\u00f3mo se comparan esos caracteres<\/li>\n<\/ul>\n\n\n\n<p><strong>Ejm<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Charset: <code>utf8mb4<\/code><\/li>\n\n\n\n<li>Collation: <code>utf8mb4_unicode_ci<\/code><\/li>\n<\/ul>\n\n\n\n<p><strong>Recomendaci\u00f3n<\/strong><br>Utiliza siempre <strong>utf8mb4<\/strong> para soportar emojis y caracteres modernos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">C\u00f3mo ver y cambiar el cotejamiento en MySQL<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Ver el cotejamiento actual<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>SHOW VARIABLES LIKE 'collation%';<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Cambiar el cotejamiento de una base de datos<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>ALTER DATABASE nombre_db \nCHARACTER SET utf8mb4 \nCOLLATE utf8mb4_unicode_ci;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Cambiar el cotejamiento de una tabla<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>ALTER TABLE nombre_tabla \nCONVERT TO CHARACTER SET utf8mb4 \nCOLLATE utf8mb4_unicode_ci;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Cambiar el cotejamiento de una columna<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>ALTER TABLE nombre_tabla \nMODIFY columna VARCHAR(255) \nCHARACTER SET utf8mb4 \nCOLLATE utf8mb4_unicode_ci;<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Buenas pr\u00e1cticas para elegir un cotejamiento<\/h2>\n\n\n\n<p>Para proyectos web modernos como los que desarrollas en <strong>Sutil Web<\/strong>, sigue estas recomendaciones:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Usa <strong>utf8mb4<\/strong> siempre que sea posible<\/li>\n\n\n\n<li>Elige <code>utf8mb4_unicode_ci<\/code> para compatibilidad internacional<\/li>\n\n\n\n<li>Usa <code>utf8mb4_bin<\/code> solo si necesitas comparaciones estrictas<\/li>\n\n\n\n<li>Mant\u00e9n coherencia en toda la base de datos<\/li>\n\n\n\n<li>Evita mezclar diferentes collations en tablas relacionadas<\/li>\n<\/ul>\n\n\n\n<p><strong>Ejm<\/strong><br>En una tienda online, usar <code>utf8mb4_unicode_ci<\/code> permite que los usuarios encuentren productos aunque escriban en may\u00fasculas o con errores leves.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusi\u00f3n<\/h2>\n\n\n\n<p>Los <strong>cotejamientos en MySQL<\/strong> son fundamentales para garantizar el correcto funcionamiento de cualquier aplicaci\u00f3n web. Elegir el adecuado puede marcar la diferencia entre una b\u00fasqueda eficiente y una experiencia de usuario deficiente.<\/p>\n\n\n\n<p>Si est\u00e1s desarrollando proyectos web con bases de datos, entender y aplicar correctamente los <strong>collations<\/strong> te permitir\u00e1 mejorar tanto el rendimiento como la precisi\u00f3n de tus consultas.<\/p>\n\n\n\n<p>En <strong>Sutil Web<\/strong>, recomendamos siempre trabajar con configuraciones modernas como <strong>utf8mb4_unicode_ci<\/strong>, asegurando compatibilidad, escalabilidad y una mejor experiencia para el usuario final.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Referencias externas<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/charset-general.html\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/charset-general.html<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/collation.html\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/collation.html<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.php.net\/manual\/es\/mysqlinfo.concepts.charset.php\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.php.net\/manual\/es\/mysqlinfo.concepts.charset.php<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/mariadb.com\/docs\/server\/reference\/data-types\/string-data-types\/character-sets\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/mariadb.com\/docs\/server\/reference\/data-types\/string-data-types\/character-sets<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/stackoverflow.com\/questions\/1049728\/mysql-get-character-set-of-database-or-table-or-column\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/stackoverflow.com\/questions\/1049728\/mysql-get-character-set-of-database-or-table-or-column<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Introducci\u00f3n Los cotejamientos en MySQL son un aspecto clave a la hora de trabajar con bases de datos, especialmente si [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":5669,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[131,1],"tags":[419,484,234,418],"class_list":["post-4503","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-diseno-y-desarrollo-web","category-lenguajes-de-programacion","tag-bases-de-datos","tag-cotejamientos","tag-desarrollo-web","tag-mysql"],"uagb_featured_image_src":{"full":["https:\/\/sutilweb.eu\/wp-content\/uploads\/2026\/04\/2026-04-28-Cotejamientos-en-MySQL-guia-completa-para-optimizar-tus-bases-de-datos.png",1536,1024,false],"thumbnail":["https:\/\/sutilweb.eu\/wp-content\/uploads\/2026\/04\/2026-04-28-Cotejamientos-en-MySQL-guia-completa-para-optimizar-tus-bases-de-datos-150x150.png",150,150,true],"medium":["https:\/\/sutilweb.eu\/wp-content\/uploads\/2026\/04\/2026-04-28-Cotejamientos-en-MySQL-guia-completa-para-optimizar-tus-bases-de-datos-300x200.png",300,200,true],"medium_large":["https:\/\/sutilweb.eu\/wp-content\/uploads\/2026\/04\/2026-04-28-Cotejamientos-en-MySQL-guia-completa-para-optimizar-tus-bases-de-datos-768x512.png",768,512,true],"large":["https:\/\/sutilweb.eu\/wp-content\/uploads\/2026\/04\/2026-04-28-Cotejamientos-en-MySQL-guia-completa-para-optimizar-tus-bases-de-datos-1024x683.png",1024,683,true],"1536x1536":["https:\/\/sutilweb.eu\/wp-content\/uploads\/2026\/04\/2026-04-28-Cotejamientos-en-MySQL-guia-completa-para-optimizar-tus-bases-de-datos.png",1536,1024,false],"2048x2048":["https:\/\/sutilweb.eu\/wp-content\/uploads\/2026\/04\/2026-04-28-Cotejamientos-en-MySQL-guia-completa-para-optimizar-tus-bases-de-datos.png",1536,1024,false]},"uagb_author_info":{"display_name":"Sutil Web","author_link":"https:\/\/sutilweb.eu\/index.php\/author\/sutilweb\/"},"uagb_comment_info":0,"uagb_excerpt":"Introducci\u00f3n Los cotejamientos en MySQL son un aspecto clave a la hora de trabajar con bases de datos, especialmente si [&hellip;]","_links":{"self":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/posts\/4503","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/comments?post=4503"}],"version-history":[{"count":3,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/posts\/4503\/revisions"}],"predecessor-version":[{"id":5670,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/posts\/4503\/revisions\/5670"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/media\/5669"}],"wp:attachment":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/media?parent=4503"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/categories?post=4503"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/tags?post=4503"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}